services:

  unit-lint:
    build:
      context: .
      target: unit-lint
    volumes:
      - .:/var/app

  integration-test:
    build:
      context: .
      target: integration-test
    environment:
      - AWS_ACCESS_KEY_ID
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - QA_BASE_URL=https://qa-ows-account.theorchard.io
    volumes:
      - .:/var/app

  account-dev:
    build:
      context: .
      target: dev
    environment:
      - Environment=dev
      - DB_URL
      - NEO4J_URL=neo4j+s://qa-neo4j-cluster.theorchard.io:7687
      - NEO4J_USERNAME
      - NEO4J_PASSWORD
      - KAFKA_BOOTSTRAP_SERVERS=b-1.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094,b-2.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094,b-3.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094
      - KAFKA_OWS_ACCOUNT_ACCOUNTS_TOPIC=event.accounts
      - KAFKA_SECURITY_PROTOCOL=SSL
      - KAFKA_TIMEOUT=3000
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5000/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    ports:
      - "8888:5000"
    volumes:
      - .:/var/app

  account-deploy:
    build:
      context: .
      target: deploy
    environment:
      - Environment=dev
      - DB_URL
      - NEO4J_URL=neo4j+s://qa-neo4j-cluster.theorchard.io:7687
      - NEO4J_USERNAME
      - NEO4J_PASSWORD
      - KAFKA_BOOTSTRAP_SERVERS=b-1.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094,b-2.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094,b-3.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094
      - KAFKA_OWS_ACCOUNT_ACCOUNTS_TOPIC=event.accounts
      - KAFKA_SECURITY_PROTOCOL=SSL
      - KAFKA_TIMEOUT=3000
      - AWS_ACCESS_KEY_ID
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    ports:
      - "8889:8080"

  lockfile:
    platform: linux/amd64
    build:
      context: .
      target: dev
    volumes:
      - ./:/var/app:cached
    entrypoint: ["uv"]
    command: ["lock", "--upgrade"]
