services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: finops
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-finops_dev}
      POSTGRES_DB: finops_gateway
    ports:
      - '5432:5432'
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    restart: unless-stopped

  finops-query-gateway:
    build:
      context: .
      dockerfile: finops-query-gateway/Dockerfile
    ports:
      - '4000:4000'
    image: finops-query-gateway:latest
    environment:
      DATABASE_URL: postgresql://finops:${POSTGRES_PASSWORD:-finops_dev}@postgres:5432/finops_gateway
      GATEWAY_PORT: 4000
      GOOGLE_APPLICATION_CREDENTIALS: /secrets/sa.json
      GOOGLE_AUTH_CLIENT_ID: ${GOOGLE_AUTH_CLIENT_ID}
      OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
      GEMINI_API_KEY: ${GEMINI_API_KEY}
      LLM_MODEL: ${LLM_MODEL:-google/gemini-3-flash-preview}
    volumes:
      - ${SA_JSON_PATH:-/opt/finops/sa.json}:/secrets/sa.json:ro
    depends_on:
      - postgres
    restart: unless-stopped

