version: '3.8'

services:
  # Database service
  db:
    image: postgres:14-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=dmarq_secure_password
      - POSTGRES_USER=dmarq_user
      - POSTGRES_DB=dmarq_db
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dmarq_user -d dmarq_db"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - dmarq-network
    ports:
      - "5433:5432"  # Map to non-standard port to avoid conflicts

  # Integrated backend with frontend service
  app:
    build:
      context: ./backend
      dockerfile: Dockerfile
    volumes:
      - ./backend:/app
    depends_on:
      db:
        condition: service_healthy
    environment:
      - DATABASE_URL=postgresql://dmarq_user:dmarq_secure_password@db:5432/dmarq_db
      - SECRET_KEY=your_secret_key_change_in_production
      - DEBUG=True
      - ENVIRONMENT=development
      # Add NODE_ENV for Tailwind
      - NODE_ENV=production
    networks:
      - dmarq-network
    ports:
      - "80:8080"  # Map directly to port 80 for web access

# Define networks
networks:
  dmarq-network:
    driver: bridge

# Define volumes
volumes:
  postgres_data:
    driver: local