1b1baaf6bf
- Added ContratoRepository, CotizacionRepository, AlumnoRepository, UsuarioRepository (Infrastructure) - Added IInformeRepository + InformeRepository for report SPs - Refactored ContratoService, CotizacionService, AlumnoService, UsuarioService to use repos via DI - Refactored InformeService, EmpresaReportService to use IInformeRepository - Updated Program.cs DI to wire repos correctly with connection string factory - Build: 0 errors
5.7 KiB
5.7 KiB
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) | ✅ PARCIAL (LeadService, UsuarioService, JwtService) |
| API Controllers | ✅ PARCIAL (AuthController, LeadController) |
| Auth JWT | ✅ CREADO (JwtService + middleware) |
| 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)
- 1.1 Crear solución + proyectos base
- 1.2 Ventas.Core — Entidades y DTOs (~1 sem)
- Lead.cs + resto entidades (25 clases desde
Datos/) - DTOs request/response (LeadDto, LoginRequest, etc.)
- Enums (EstadoLead, TipoPago, TipoDocumento, TipoDescuento)
- Interfaces repositorios (ILeadRepository, ILeadQueryRepository, IAlumnoRepository, IUsuarioRepository, IContratoRepository, ICotizacionRepository)
- Lead.cs + resto entidades (25 clases desde
- 1.3 Ventas.Infrastructure — Acceso a Datos (~2-3 sem)
- VentasDbContext.cs (EF Core + Npgsql)
- LeadRepository.cs, LeadQueryRepository.cs
- ContratoRepository.cs, CotizacionRepository.cs
- AlumnoRepository.cs, UsuarioRepository.cs, InformeRepository.cs
- 1.4 Ventas.Services — Lógica de Negocio (~2 sem)
- LeadService.cs, UsuarioService.cs, JwtService.cs (refactored to use repos)
- ContratoService.cs, CotizacionService.cs, AlumnoService.cs, InformeService.cs (refactored to use repos)
- 1.5 Ventas.API — Controladores REST (~1 sem)
- AuthController.cs (login + perfil)
- LeadController.cs (CRUD + actividades + pagos)
- ContratoController.cs (CRUD + PDF + empresa + firma)
- CotizacionController.cs (CRUD + detalle + pago + empresa)
- AlumnoController.cs (CRUD + apoderado + consultas)
- InformeController.cs (reportes ventas, leads, documentos)
- Program.cs completo (DI, JWT, CORS)
- appsettings.json con connection strings
- 1.6 Auth JWT (~3 días)
- JwtService.cs (generación de tokens)
- Login endpoint funcional
- Claims → cookies HttpOnly
- 1.7 Reportes QuestPDF (~2-3 sem)
- ReportService.cs (Contrato, Cotización, Arqueo en QuestPDF)
- EmpresaReportService.cs (ContratoAbierto, ContratoCerrado, CotizacionCC, CotizacionPC)
- EmpresaReportController.cs (endpoints para reportes empresa)
- 10 reportes restantes (Anexo, ContratoBlack, Presupuesto, CAEMP variants, 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, DTOs, Interfaces, DbContext, LeadRepository + LeadQueryRepository, DI, JWT, appsettings | Resto repos + Controllers |
| 2026-07-07 | F1 | LeadService, UsuarioService, JwtService, AuthController, LeadController | Resto Services + Controllers |
| 2026-07-07 | F1 | ContratoService, CotizacionService, AlumnoService, InformeService + Controllers | Reportes QuestPDF |
| 2026-07-07 | F1.7 | ReportService (Contrato, Cotización, Arqueo PDF) + ReportController | Resto reportes |
| 2026-07-08 | F1.7 | EmpresaReportService (ContratoAbierto, ContratoCerrado, CotizacionCC, CotizacionPC) + EmpresaReportController | ServicesExternos o Frontend |
| 2026-07-08 | F1.3-1.5 | Fix arquitectura: repos faltantes + services refactored to use repos via DI | ServicesExternos (Fase 2) |
Próximos Pasos Inmediatos
Completar✅Ventas.Core/Entities/Configurar✅VentasDbContextCrear✅LeadRepository+LeadQueryRepository- Agregar referencia Infrastructure a Ventas.API ✅
- Configurar JWT + CORS + DI en Program.cs ✅
- Actualizar
appsettings.jsoncon connection string ✅ - Seguir repositorios por prioridad: Contrato → Cotizacion → Alumno → Usuario → Auth
- Crear Controllers (empezar con AuthController + LeadController)
- Probar compilación con
dotnet build