# Sistema de Gestión de Pedidos - FastAPI + Prisma ## Instalación ### 1. Instalar dependencias Node.js (para Prisma CLI) ```bash npm install ``` ### 2. Instalar dependencias Python ```bash pip install -r requirements_prisma.txt ``` ### 3. Configurar base de datos Editar `.env`: ```env DATABASE_URL="postgresql://usuario:password@localhost:5432/pedidos_clientes" OPENAI_API_KEY="tu-api-key" ``` ### 4. Generar cliente Prisma ```bash npm run prisma:generate # O prisma generate ``` ### 5. Crear y aplicar migraciones ```bash npm run prisma:migrate # O prisma migrate dev --name init ``` ### 6. Ejecutar aplicación ```bash python run.py # O uvicorn app.main:app --reload ``` ## Estructura del Proyecto ``` app/ ├── __init__.py ├── main.py # Aplicación FastAPI principal ├── config.py # Configuración ├── prisma_client.py # Cliente Prisma ├── models/ # Modelos Pydantic │ ├── cliente.py │ ├── pedido_cliente.py │ ├── proveedor.py │ └── ... ├── api/ # Endpoints FastAPI │ ├── routes/ │ │ ├── clientes.py │ │ ├── pedidos_cliente.py │ │ └── ... │ └── dependencies.py └── services/ # Lógica de negocio ├── ocr_service.py └── albaran_processor.py prisma/ └── schema.prisma # Schema de base de datos ``` ## Endpoints API - `GET /api/clientes` - Listar clientes - `GET /api/pedidos-cliente` - Listar pedidos - `GET /api/kanban` - Datos del Kanban - `GET /api/alertas` - Alertas de pedidos urgentes - `POST /api/albaranes/upload` - Subir albarán - `GET /docs` - Documentación Swagger ## Comandos Útiles ```bash # Generar cliente Prisma prisma generate # Crear migración prisma migrate dev --name nombre_migracion # Aplicar migraciones prisma migrate deploy # Abrir Prisma Studio (GUI para BD) prisma studio # Ver estado de migraciones prisma migrate status ``` ## Ventajas de Prisma - ✅ Type-safe queries - ✅ Migraciones automáticas - ✅ Mejor performance - ✅ Schema como código - ✅ Prisma Studio (GUI para BD) - ✅ Validación automática de tipos