# =============================================================================
# ENVIRONMENT-INVENTORY.yml - PLATFORM_MARKETING_CONTENT
# =============================================================================
# Inventario de Entorno de Desarrollo
# Generado por: @PERFIL_DEVENV
# =============================================================================

version: "1.0.0"
fecha_creacion: "2026-01-04"
fecha_actualizacion: "2026-01-04"
responsable: "@PERFIL_DEVENV"

# -----------------------------------------------------------------------------
# IDENTIFICACION DEL PROYECTO
# -----------------------------------------------------------------------------

proyecto:
  nombre: "Platform Marketing Content"
  alias: "pmc"
  nivel: "NIVEL_2A"
  tipo: "standalone"
  estado: "desarrollo"
  descripcion: "Plataforma de generacion de contenido de marketing con IA"

# -----------------------------------------------------------------------------
# HERRAMIENTAS Y RUNTIME
# -----------------------------------------------------------------------------

herramientas:
  runtime:
    node:
      version: "20.x"
      requerido: true
      notas: "Para backend NestJS y frontend React"
    python:
      version: "3.11"
      requerido: true
      notas: "Para ComfyUI y servicios de IA"

  package_managers:
    npm:
      version: "10.x"
      requerido: true
    pip:
      version: "23.x"
      requerido: true

  build_tools:
    - nombre: "Vite"
      version: "5.x"
      uso: "Frontend build"
    - nombre: "TypeScript"
      version: "5.x"
      uso: "Compilacion"
    - nombre: "NestJS CLI"
      version: "10.x"
      uso: "Backend build"

  linters:
    - nombre: "ESLint"
      version: "8.x"
      config: ".eslintrc.js"
    - nombre: "Prettier"
      version: "3.x"
      config: ".prettierrc"

  testing:
    - nombre: "Jest"
      version: "29.x"
      tipo: "unit"
      config: "jest.config.js"
    - nombre: "Vitest"
      version: "1.x"
      tipo: "unit frontend"
      config: "vitest.config.ts"

# -----------------------------------------------------------------------------
# SERVICIOS Y PUERTOS
# -----------------------------------------------------------------------------

servicios:
  frontend:
    nombre: "pmc-frontend"
    framework: "React"
    version: "18.x"
    puerto: 3110
    comando_dev: "npm run dev"
    ubicacion: "apps/frontend/"
    url_local: "http://localhost:3110"

  backend:
    nombre: "pmc-backend"
    framework: "NestJS"
    version: "10.x"
    puerto: 3111
    comando_dev: "npm run start:dev"
    ubicacion: "apps/backend/"
    url_local: "http://localhost:3111"
    api_prefix: "/api/v1"

  comfyui:
    nombre: "comfyui"
    framework: "ComfyUI"
    puerto_api: 8188
    puerto_websocket: 8188
    ubicacion: "external/comfyui/"
    url_local: "http://localhost:8188"
    notas: "Generacion de imagenes con Stable Diffusion"

# -----------------------------------------------------------------------------
# BASE DE DATOS
# -----------------------------------------------------------------------------

base_de_datos:
  principal:
    engine: "PostgreSQL"
    version: "15"
    host: "localhost"
    puerto: 5432

    ambientes:
      development:
        nombre: "pmc_dev"
        usuario: "pmc_user"
        password_ref: "DB_PASSWORD en .env"

      test:
        nombre: "pmc_test"
        usuario: "pmc_user"
        password_ref: "DB_PASSWORD en .env"

    schemas:
      - nombre: "public"
        descripcion: "Schema principal"

    conexion_ejemplo: "postgresql://pmc_user:{password}@localhost:5432/pmc_dev"

# -----------------------------------------------------------------------------
# VARIABLES DE ENTORNO
# -----------------------------------------------------------------------------

variables_entorno:
  archivo_ejemplo: "apps/backend/.env.example"

  variables:
    - nombre: "NODE_ENV"
      descripcion: "Ambiente de ejecucion"
      requerido: true
      sensible: false
      ejemplo: "development"

    - nombre: "PORT"
      descripcion: "Puerto del servidor backend"
      requerido: true
      sensible: false
      ejemplo: "3111"

    - nombre: "DATABASE_URL"
      descripcion: "Connection string de PostgreSQL"
      requerido: true
      sensible: true
      ejemplo: "postgresql://pmc_user:password@localhost:5432/pmc_dev"

    - nombre: "JWT_SECRET"
      descripcion: "Secreto para JWT"
      requerido: true
      sensible: true
      ejemplo: ""

    - nombre: "COMFYUI_URL"
      descripcion: "URL de ComfyUI API"
      requerido: true
      sensible: false
      ejemplo: "http://localhost:8188"

    - nombre: "FRONTEND_URL"
      descripcion: "URL del frontend"
      requerido: true
      sensible: false
      ejemplo: "http://localhost:3110"

# -----------------------------------------------------------------------------
# CONTENEDORES DOCKER
# -----------------------------------------------------------------------------

docker:
  compose_file: "docker-compose.yml"

  services:
    - nombre: "db"
      imagen: "postgres:15-alpine"
      puerto_host: 5432
      puerto_container: 5432
      volumes:
        - "postgres_data:/var/lib/postgresql/data"

    - nombre: "comfyui"
      imagen: "custom-comfyui"
      puerto_host: 8188
      puerto_container: 8188
      volumes:
        - "comfyui_models:/app/models"
        - "comfyui_output:/app/output"
      notas: "Requiere GPU NVIDIA"

  volumes:
    - nombre: "postgres_data"
      descripcion: "Datos de PostgreSQL"
    - nombre: "comfyui_models"
      descripcion: "Modelos de Stable Diffusion"
    - nombre: "comfyui_output"
      descripcion: "Imagenes generadas"

  networks:
    - nombre: "pmc_network"
      driver: "bridge"

# -----------------------------------------------------------------------------
# SCRIPTS DE DESARROLLO
# -----------------------------------------------------------------------------

scripts:
  setup:
    descripcion: "Configurar entorno desde cero"
    pasos:
      - "npm install"
      - "cp .env.example .env"
      - "docker-compose up -d db"
      - "npm run migration:run"

  desarrollo:
    frontend: "cd apps/frontend && npm run dev"
    backend: "cd apps/backend && npm run start:dev"
    comfyui: "cd external/comfyui && python main.py"

  testing:
    unit: "npm run test"
    e2e: "npm run test:e2e"

  build:
    frontend: "cd apps/frontend && npm run build"
    backend: "cd apps/backend && npm run build"

# -----------------------------------------------------------------------------
# INSTRUCCIONES DE SETUP
# -----------------------------------------------------------------------------

setup_instrucciones: |
  ## Setup del Entorno de Desarrollo - Platform Marketing Content

  ### Prerequisitos
  - Node.js 20.x
  - Python 3.11
  - PostgreSQL 15 (o Docker)
  - npm 10.x, pip
  - GPU NVIDIA (para ComfyUI)

  ### Pasos

  1. Clonar repositorio:
     ```bash
     git clone <url_repo>
     cd platform_marketing_content
     ```

  2. Instalar dependencias Node:
     ```bash
     npm install
     ```

  3. Configurar variables de entorno:
     ```bash
     cp .env.example .env
     # Editar .env con valores locales
     ```

  4. Levantar base de datos:
     ```bash
     docker-compose up -d db
     ```

  5. Ejecutar migraciones:
     ```bash
     npm run migration:run
     ```

  6. Iniciar desarrollo:
     ```bash
     # Terminal 1 - Backend
     cd apps/backend && npm run start:dev

     # Terminal 2 - Frontend
     cd apps/frontend && npm run dev

     # Terminal 3 - ComfyUI (si aplica)
     cd external/comfyui && python main.py
     ```

  ### Verificar
  - Frontend: http://localhost:3110
  - Backend: http://localhost:3111/api/v1
  - ComfyUI: http://localhost:8188

# -----------------------------------------------------------------------------
# TROUBLESHOOTING
# -----------------------------------------------------------------------------

troubleshooting:
  - problema: "Puerto 3110 o 3111 en uso"
    solucion: "Verificar con lsof -i :311X. Terminar proceso conflictivo"

  - problema: "Error de conexion a BD"
    solucion: "Verificar que PostgreSQL esta corriendo. Revisar credenciales en .env"

  - problema: "ComfyUI no inicia"
    solucion: "Verificar drivers NVIDIA. Verificar modelos descargados"

  - problema: "Generacion de imagenes falla"
    solucion: "Verificar VRAM disponible. Reducir tamano de imagen si es necesario"

# -----------------------------------------------------------------------------
# REFERENCIAS
# -----------------------------------------------------------------------------

referencias:
  perfil_devenv: "orchestration/agents/perfiles/PERFIL-DEVENV.md"
  inventario_master: "orchestration/inventarios/DEVENV-MASTER-INVENTORY.yml"
  inventario_puertos: "orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
  contexto_proyecto: "orchestration/00-guidelines/CONTEXTO-PROYECTO.md"

# =============================================================================
# FIN DE INVENTARIO
# =============================================================================
