---
services:
  function:
    platform: linux/amd64
    build:
      context: .
      target: production
      additional_contexts:
        common: ../../common
    volumes:
      - ./src:/var/task/src
      - ./config.py:/var/task/config.py
    ports:
      - "9000:8080"
    environment:
      - DD_ENV=dev
      - PYTHONDONTWRITEBYTECODE=1
      - DD_API_KEY
      - DD_APP_KEY
      - DD_SCORECARD_RULE_ID
      - SENTRY_DSN
  lint-and-test:
    platform: linux/amd64
    build:
      context: .
      target: test
      additional_contexts:
        common: ../../common
    environment:
      - TEST_ARGS=-v
      - PYTHONDONTWRITEBYTECODE=1
    volumes:
      - ./src:/var/task/src
      - ./tests:/var/task/tests
      - ./config.py:/var/task/config.py
      - ./scripts/lint-and-test.sh:/var/task/lint-and-test.sh
  fmt:
    platform: linux/amd64
    build:
      context: .
      target: fmt
      additional_contexts:
        common: ../../common
    volumes:
      - ./src:/var/task/src
      - ./tests:/var/task/tests
      - ./config.py:/var/task/config.py
      - ./scripts/fmt.sh:/var/task/fmt.sh
  lockfile:
    platform: linux/amd64
    build:
      context: .
      target: base
      args:
        AWS_ACCOUNT: "086679231553"
      additional_contexts:
        common: ../../common
    volumes:
      - ./:/var/task:cached
    entrypoint: ["uv"]
    command: ["lock", "--upgrade"]
