#version: '3.8'

services:
  unit-lint:
    build:
      context: .
      target: unit-lint
    volumes:
      - .:/var/app
    environment:
      - Environment=test

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

  permissions-dev:
    build:
      context: .
      target: dev
    environment:
      - Environment=dev
      - DB_URL
      - NEO4J_URL=neo4j+ssc://qa-neo4j-cluster.theorchard.io:7687
      - NEO4J_USERNAME
      - NEO4J_PASSWORD
      - DD_ENV=dev
      - DD_SERVICE=ows-permissions
      - DD_AGENT_HOST=dev-datadog-agent.dev.theorchard.io
      - DD_TRACE_ENABLED=1
      - DD_PROFILING_ENABLED=1
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5000/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    ports:
      - "8888:5000"
    volumes:
      - .:/var/app

  permissions-deploy:
    build:
      context: .
      target: deploy
    environment:
      - Environment=dev
      - DB_URL
      - NEO4J_URL=neo4j+ssc://qa-neo4j-cluster.theorchard.io:7687
      - NEO4J_USERNAME
      - NEO4J_PASSWORD
      - NEO4J_AURA_URL=neo4j+ssc://qa-neo4j-cluster.theorchard.io:7687
      - NEO4J_AURA_USERNAME
      - NEO4J_AURA_PASSWORD
      - AR_MYSQL_DATABASE=art_relations
      - AR_MYSQL_HOST=qa.db.qaorch.com
      - AR_MYSQL_PASSWORD
      - AR_MYSQL_PORT
      - AR_MYSQL_USER=ratoui
      - AWS_ACCESS_KEY_ID
      - AWS_DEFAULT_REGION=us-east-1
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - DD_ENV=dev
      - DD_SERVICE=ows-permissions
      - DD_AGENT_HOST=dev-datadog-agent.dev.theorchard.io
      - DD_TRACE_ENABLED=1
      - DD_PROFILING_ENABLED=1
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/hello/"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s
    ports:
      - "8889:8080"

  permissions-redis:
    image: redis:5.0.6
    environment:
      REDIS_HOST: permissions-redis
    ports:
      - 46379:6379
    volumes:
      - permissions-redis-data:/home/redis/data

  ows-permissions:
    build:
      context: .
      target: dev
    ports:
      - 40012:8080
    depends_on:
      - permissions-redis
    links:
      - permissions-redis
    environment:
      - APP_DEBUG=false
      - PORT=8080
      - Environment=dev
      - DD_ENV=dev
      - DD_SERVICE=ows-permissions
      - DD_AGENT_HOST=dev-datadog-agent.dev.theorchard.io
      - DD_TRACE_ENABLED=1
      - DD_PROFILING_ENABLED=1
      - REDIS_CACHE_TTL=300
      - REDIS_URL=permissions-redis
      - SPLITIO_API_KEY=""
    volumes:
      - .:/var/app

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

volumes:
  permissions-redis-data:
    driver: local
