version: "3.9"

services:
  postgres:
    image: postgres:15
    container_name: postgres_db
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: oposgres
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: haciendasanangel
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U oposgres"]
      interval: 10s
      timeout: 5s
      retries: 5

  backend:
    build: ./backend
    container_name: backend_app
    restart: always
    ports:
      - "4000:4000"
    environment:
      PORT: 4000
      DB_HOST: postgres
      DB_PORT: 5432
      DB_USER: oposgres
      DB_PASSWORD: ${POSTGRES_PASSWORD}
      DB_NAME: haciendasanangel
      EMAIL_HOST: smtp-relay.brevo.com
      EMAIL_PORT: 587
      EMAIL_USER: ${EMAIL_USER}
      EMAIL_PASS: ${EMAIL_PASS}
      URL_CORS: https://hotel.consultoria-as.com
      BANXICO_TOKEN: ${BANXICO_TOKEN}
    depends_on:
      postgres:
        condition: service_healthy

  frontend:
    build: ./frontend
    container_name: frontend_app
    restart: always
    ports:
      - "5172:5172"
    environment:
      VITE_API_BASE_URL: http://backend:4000/api
    depends_on:
      - backend

volumes:
  postgres_data:
