Files
rm-ventas/ROADMAP.md
T
Nurfog 3d5419403d feat: core entities, infrastructure, and lead repositories
- 25 domain entities mapped from original Datos/ classes
- 4 enums (EstadoLead, TipoPago, TipoDocumento, TipoDescuento)
- DTOs for Lead, Auth flows
- 6 repository interfaces
- VentasDbContext with EF Core + Npgsql
- LeadRepository (command SPs) and LeadQueryRepository (query SPs) with Dapper
- Program.cs with JWT auth, CORS, DI setup
- appsettings.json with connection string
- .gitignore for bin/obj/node_modules
- ROADMAP.md for daily progress tracking
2026-07-07 17:45:49 -04:00

123 lines
4.4 KiB
Markdown

# Roadmap — Migración ModuloVentas
> **Proyecto:** rm-ventas
> **Original:** `/home/juan/dev/ventas` (.NET Framework 4.7.2 / WebForms / MySQL)
> **Destino:** .NET 10 + PostgreSQL + Next.js
> **Inicio:** Julio 2026
---
## Estado Actual
| Componente | Estado |
|-----------|--------|
| Backend .NET 10 — Skeleton (sln + 4 proyectos + NuGet) | ✅ CREADO |
| Entidades / DTOs / Interfaces (Ventas.Core) | ✅ CREADO |
| Infrastructure (EF Core + Dapper + Repos) | ✅ PARCIAL (DbContext + LeadRepository listos) |
| Services (lógica de negocio) | ❌ PENDIENTE |
| API Controllers | ❌ PENDIENTE |
| Auth JWT | ❌ PENDIENTE |
| Reportes QuestPDF (17 reportes) | ❌ PENDIENTE |
| ServicesExternos.API | ❌ PENDIENTE |
| Frontend Next.js | ❌ PENDIENTE |
| Contenedores (Docker) | ❌ PENDIENTE |
| Tests E2E | ❌ PENDIENTE |
---
## Checklist por Fase
### FASE 1: BACKEND .NET 10 — API REST (~6-8 semanas)
- [x] **1.1** Crear solución + proyectos base
- [x] **1.2 Ventas.Core — Entidades y DTOs** (~1 sem)
- [x] Lead.cs + resto entidades (25 clases desde `Datos/`)
- [x] DTOs request/response (LeadDto, LoginRequest, etc.)
- [x] Enums (EstadoLead, TipoPago, TipoDocumento, TipoDescuento)
- [x] Interfaces repositorios (ILeadRepository, ILeadQueryRepository, IAlumnoRepository, IUsuarioRepository, IContratoRepository, ICotizacionRepository)
- [x] **1.3 Ventas.Infrastructure — Acceso a Datos** (~2-3 sem)
- [x] VentasDbContext.cs (EF Core + Npgsql)
- [x] LeadRepository.cs (SPs INSERT/UPDATE con Dapper)
- [x] LeadQueryRepository.cs (SPs SELECT con Dapper)
- [ ] Configurations/ (EF mapping)
- [ ] Resto repos (Alumno, Contrato, Cotizacion, etc.)
- [ ] SpComplexQueries.cs (Dapper multi-resultset)
- [ ] **1.4 Ventas.Services — Lógica de Negocio** (~2 sem)
- [ ] LeadService.cs + resto servicios (~15)
- [ ] **1.5 Ventas.API — Controladores REST** (~1 sem)
- [ ] AuthController.cs
- [ ] LeadController.cs + resto controllers (~20)
- [ ] Program.cs completo (DI, JWT, CORS)
- [ ] appsettings.json con connection strings
- [ ] **1.6 Auth JWT** (~3 días)
- [ ] JwtMiddleware.cs
- [ ] Login endpoint funcional
- [ ] Claims → cookies HttpOnly
- [ ] **1.7 Reportes QuestPDF** (~2-3 sem)
- [ ] ReportService.cs (base)
- [ ] 17 reportes (Contrato, Cotización, Arqueo, etc.)
- [ ] Dockerfile Backend
### FASE 2: SERVICES EXTERNOS API (~2-3 semanas)
- [ ] **2.0 Setup**
- [ ] ServicesExternos.sln + proyectos
- [ ] Program.cs + Dockerfile
- [ ] **2.1 LibreDTE** (~1 sem)
- [ ] **2.2 Transbank Webpay** (~1 sem)
- [ ] **2.3 Email con MailKit** (~2 días)
### FASE 3: FRONTEND NEXT.JS (~6-8 semanas)
- [ ] **3.1 Setup** (create-next-app, packages, config)
- [ ] **3.2 Layout Principal** (~1 sem)
- [ ] layout.tsx (sidebar + header = SAM.Master)
- [ ] Sidebar.tsx, Header.tsx
- [ ] CSS original (style.css, ichn.css, etc.)
- [ ] **3.3 Login + Auth** (~3 días)
- [ ] **3.4 Dashboard** (~3 días)
- [ ] **3.5 Módulo Leads** (~1 sem) — 3 páginas
- [ ] **3.6 Módulo Cotizaciones/Pagos** (~1 sem)
- [ ] **3.7 Módulo Empresas** (~1 sem) — 3 páginas
- [ ] **3.8 Resto páginas** (~2-3 sem)
- Arqueo, Cursos, Alumnos
- Reportes (3), Autorizador, Contacto
- [ ] Dockerfile Frontend
### FASE 4: CONTENEDORES (~1 semana)
- [ ] docker-compose.yml (backend-api + services-externos + frontend)
- [ ] .env.example
- [ ] .gitignore
### FASE 5: PRUEBAS (~2-3 semanas)
- [ ] Unit tests backend (xUnit + Moq)
- [ ] Integration tests (TestContainers + PostgreSQL)
- [ ] Playwright E2E (20 escenarios)
- [ ] Visual regression tests
---
## Bitácora Diaria
| Fecha | Fase | Qué se hizo | Siguiente paso |
|-------|------|-------------|----------------|
| 2026-07-07 | F1 | Entities (25), Enums (4), DTOs, Interfaces (6), DbContext, LeadRepository, LeadQueryRepository, DI setup, appsettings | Resto repos (Contrato, Cotizacion, Alumno) + Controllers |
| | | | |
| | | | |
---
## Próximos Pasos Inmediatos
1. ~~Completar `Ventas.Core/Entities/`~~
2. ~~Configurar `VentasDbContext`~~
3. ~~Crear `LeadRepository` + `LeadQueryRepository`~~
4. **Agregar referencia Infrastructure a Ventas.API**
5. **Configurar JWT + CORS + DI en Program.cs**
6. **Actualizar `appsettings.json`** con connection string ✅
7. **Seguir repositorios** por prioridad: Contrato → Cotizacion → Alumno → Usuario → Auth
8. **Crear Controllers** (empezar con AuthController + LeadController)
9. **Probar compilación** con `dotnet build`