services:
  mysqldb:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=content_review
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
    ports:
      - "5001:3306"
    command: "--sql_mode=NO_ENGINE_SUBSTITUTION"
    volumes:
      - "dbdata:/var/lib/mysql"

  local_server:
    build:
      context: .
      target: dev
    environment:
      - Environment=dev
      - MYSQL_DB_USER=${MYSQL_DB_USER:-user}
      - MYSQL_DB_PASS=${MYSQL_DB_PASS:-password}
      - MYSQL_DB_HOST=${MYSQL_DB_HOST:-mysqldb}
      - MYSQL_DB_NAME=${MYSQL_DB_NAME:-content_review}
      - AWS_REGION
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - AR_DB_NAME=art_relations
      - AR_DB_HOST=qa.db.qaorch.com
      - AR_DB_PASS
      - AR_DB_USER
      - KAFKA_BOOTSTRAP_SERVERS=b-3.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-1.dev-managed-kafka-cdc.rk4es0.c11.kafka.us-east-1.amazonaws.com:9094
      - VAPI_BASE_URL=https://vectorapi.qaorch.com
      - VAPI_CLIENT_ID=5656789872
      - VAPI_CLIENT_SECRET
      - VAPI_REDIRECT_URI=https://oa.qaorch.com
      - VAPI_USER_ID=179
      - VAPI_USER_TYPE=oa
      - SFN_COMPLETE_REVIEW_ARN=arn:aws:states:us-east-1:437795906767:stateMachine:qa-sfn-content-complete-review
    ports:
      - "5000:5000"
    volumes:
      - ./product_review:/var/app/product_review

  test-unit:
    build:
      context: .
      target: tests
    entrypoint:
      - ./env/bin/python
      - -m
      - pytest
      - tests/unit
      - tests/functional
      - --cov
      - product_review
      - --cov-report
      - xml:coverage.xml
      - --cov-report
      - term
      - --junitxml=pyunit.xml

  lint:
    build:
      context: .
      target: tests
    entrypoint:
      - ./env/bin/python
      - -m
      - ruff
      - check
      - product_review
      - tests
      - dev.py
      - application.py

  test-integration:
    build:
      context: .
      target: tests
    environment:
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
    entrypoint:
      - ./env/bin/python
      - -m
      - pytest
      - tests/integration

volumes:
  dbdata:
