services:
  function:
    platform: linux/amd64
    build:
      context: .
      target: local
      args:
        AWS_ACCOUNT: "086679231553"
    volumes:
      - ./sync_account:/var/task/sync_account:cached
      - ./config.py:/var/task/config.py:cached
      - ./app.py:/var/task/app.py:cached
    ports:
      - "9000:8080"
    environment:
      - ENVIRONMENT=dev
      - DD_ENV=dev
      - DD_SERVICE=lambda-abacus-sync-account
      - DD_TRACE_ENABLED=false
      - DD_ENHANCED_METRICS=false
      - GRAPHQL_GATEWAY_URL=$GRAPHQL_GATEWAY_URL
      - ORCHARD_PROFILE_ID=$ORCHARD_PROFILE_ID
      - ORCHARD_PROFILE_UUID=$ORCHARD_PROFILE_UUID
      - ORCHARD_IDENTITY_ID=$ORCHARD_IDENTITY_ID

  lint-and-test:
    platform: linux/amd64
    build:
      context: .
      target: unit-lint
      args:
        AWS_ACCOUNT: "086679231553"
    volumes:
      - ./sync_account:/var/task/sync_account:cached
      - ./config.py:/var/task/config.py:cached
      - ./app.py:/var/task/app.py:cached
      - ./tests:/var/task/tests:cached
    command: ./lint-and-test.sh
    environment:
      - SKIP_LINT=0
      - TEST_ARGS=-v
      - COV_REPORT=term
      - ENVIRONMENT=dev
      - RUN_INTEGRATION=0

  lockfile:
    platform: linux/amd64
    build:
      context: .
      target: base
      args:
        AWS_ACCOUNT: "086679231553"
    volumes:
      - ./:/var/task:cached
    entrypoint: ["uv"]
    command: ["lock", "--upgrade"]

  integration-test:
    platform: linux/amd64
    env_file:
      - tests/integration/integr_test_envvars.env
    build:
      context: .
      target: integration
      args:
        AWS_ACCOUNT: "086679231553"
    volumes:
      - ./sync_account:/var/task/sync_account:cached
      - ./config.py:/var/task/config.py:cached
      - ./app.py:/var/task/app.py:cached
      - ./tests:/var/task/tests:cached
    ports:
      - "8000:8000"
    command: ./lint-and-test.sh
    environment:
      - RUN_INTEGRATION=1
      - SKIP_LINT=1
      - TEST_ARGS=-v
      - COV_REPORT=term
      - MYSQL_USER=$MYSQL_USER
      - MYSQL_PASS=$MYSQL_PASS

  sync-account-lambda:
    image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/lambda-abacus-sync-account:latest
    environment:
      - ENVIRONMENT=$ENVIRONMENT
      - GRAPHQL_GATEWAY_URL=$GRAPHQL_GATEWAY_URL
      - ORCHARD_PROFILE_ID=$ORCHARD_PROFILE_ID
      - ORCHARD_PROFILE_UUID=$ORCHARD_PROFILE_UUID
      - ORCHARD_IDENTITY_ID=$ORCHARD_IDENTITY_ID
    ports:
      - "6773:8080"
