
services:
  management-api:
    container_name: management-api
    build:
      context: .
      dockerfile: Dockerfile
      target: dev   # <-- ใช้ stage dev (npm run start:dev)
    ports:
      - "3000:3000"
    env_file:
      - .env
    environment:
      NODE_ENV: development
      PORT: "3000"
      # ให้ allow frontend admin ที่ 8081 + อื่นๆได้ด้วย
      CORS_ORIGIN: "http://localhost:8081,http://localhost:3002,http://localhost:5173"
      # ถ้า main.ts ใช้ ConfigService get('CORS_ORIGIN') ก็จะอ่านค่านี้ได้
      GOOGLE_APPLICATION_CREDENTIALS: "/app/credentials/firebase-service-account.json"
    volumes:
      # mount source เพื่อแก้โค้ดแล้วสะท้อนใน container
      - .:/app
      # กัน node_modules ของเครื่องทับของ container
      - /app/node_modules
      - ./credentials:/app/credentials:ro
    restart: unless-stopped
    healthcheck:
      # Health endpoint includes global prefix: /api/v1/firebase/health
      test: ["CMD-SHELL", "node -e \"require('http').get('http://localhost:3000/api/v1/firebase/health', (r)=>process.exit(r.statusCode===200?0:1)).on('error', ()=>process.exit(1))\""]
      interval: 30s
      timeout: 3s
      retries: 3
      start_period: 40s
