107 lines
2.2 KiB
Markdown
107 lines
2.2 KiB
Markdown
# 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
|
|
|