services:
  # Base de datos MySQL
  db:
    image: mysql:8.0
    container_name: facturante_db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: facturante_wp
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: wp_password
    volumes:
      - db_data:/var/lib/mysql
      - ./mysql/init:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"
    networks:
      - facturante_network

  # WordPress con WooCommerce
  wordpress:
    image: wordpress:latest
    container_name: facturante_wordpress
    restart: unless-stopped
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: facturante_wp
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: wp_password
      WORDPRESS_DEBUG: 1
      WORDPRESS_CONFIG_EXTRA: |
        define('WP_DEBUG_LOG', true);
        define('WP_DEBUG_DISPLAY', false);
        define('SCRIPT_DEBUG', true);
        define('SAVEQUERIES', true);
    volumes:
      - wordpress_data:/var/www/html
      - ./wp-content:/var/www/html/wp-content
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
      - "8080:80"
    networks:
      - facturante_network

  # phpMyAdmin para gestión de base de datos
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: facturante_phpmyadmin
    restart: unless-stopped
    depends_on:
      - db
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
      PMA_USER: wp_user
      PMA_PASSWORD: wp_password
    ports:
      - "8081:80"
    networks:
      - facturante_network

  # MailHog para capturar emails
  mailhog:
    image: mailhog/mailhog:latest
    container_name: facturante_mailhog
    restart: unless-stopped
    ports:
      - "1025:1025"  # SMTP
      - "8025:8025"  # Web UI
    networks:
      - facturante_network

volumes:
  db_data:
  wordpress_data:

networks:
  facturante_network:
    driver: bridge 