name: resolutionflow

services:
  db:
    image: pgvector/pgvector:pg16
    container_name: resolutionflow_postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: resolutionflow
    ports:
      - "${POSTGRES_PORT:-5433}:5432"
    volumes:
      - rf_postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5

  backend:
    build:
      context: ./backend
      dockerfile: Dockerfile.dev
    container_name: resolutionflow_backend
    command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
    ports:
      - "8000:8000"
    volumes:
      - ${REPO_ROOT}/backend:/app
    environment:
      - APP_NAME=ResolutionFlow
      - DEBUG=true
      - DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/resolutionflow
      - DATABASE_URL_SYNC=postgresql://postgres:postgres@db:5432/resolutionflow
      # Dedicated test database — pytest will refuse to run against any DB
      # whose name doesn't contain 'test' (conftest.py safety assertion).
      - DATABASE_TEST_URL=postgresql+asyncpg://postgres:postgres@db:5432/resolutionflow_test
      - SECRET_KEY=${SECRET_KEY}
      - ALGORITHM=HS256
      - ACCESS_TOKEN_EXPIRE_MINUTES=15
      - REFRESH_TOKEN_EXPIRE_DAYS=7
      - REQUIRE_INVITE_CODE=true
      - FEEDBACK_EMAIL=feedback@resolutionflow.com
      - AI_PROVIDER=anthropic
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - GOOGLE_AI_API_KEY=${GOOGLE_AI_API_KEY:-}
      - ENABLE_MCP_MICROSOFT_LEARN=true
      - FRONTEND_URL=http://docker-01:5173
      - CORS_ORIGINS=["http://localhost:5173","http://127.0.0.1:5173","http://docker-01:5173","http://100.64.78.44:5173"]
    depends_on:
      db:
        condition: service_healthy

  frontend:
    build:
      context: ./frontend
      dockerfile: Dockerfile.dev
    container_name: resolutionflow_frontend
    command: npm run dev -- --host 0.0.0.0 --port 5173
    ports:
      - "5173:5173"
    volumes:
      - ${REPO_ROOT}/frontend:/app
      - /app/node_modules
    environment:
      - VITE_API_URL=http://docker-01:8000
      - CHOKIDAR_USEPOLLING=true
    depends_on:
      - backend

volumes:
  rf_postgres_data: