feat: complete fase 1 - all controllers, services, middleware

- Added Ejecutivo.cs entity
- ArqueoService + ArqueoController (arqueos por fecha/usuario)
- 13 missing controllers: Curso, Descuento, Documento, Empresa, Horario,
  Jornada, Programa, Propuesta, Region, Sala, Sede, Tarifa, Usuario
- JwtMiddleware.cs for cookie/token validation
- SpComplexQueries.cs for Dapper multi-resultset
- ArqueoService registered in DI
- Build: 0 errors
- Total: 21 controllers, 8 services, 7 repos, 21 entities
This commit is contained in:
2026-07-08 10:26:20 -04:00
parent 1b1baaf6bf
commit c1e35445f6
20 changed files with 695 additions and 24 deletions
+21 -24
View File
@@ -12,11 +12,13 @@
| 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) |
| Entidades (20) + DTOs + Enums + Interfaces | ✅ COMPLETO |
| Infrastructure (EF Core + Dapper + Repos + SpComplex) | ✅ COMPLETO |
| Services (lógica de negocio) | ✅ COMPLETO (8 services) |
| API Controllers | ✅ COMPLETO (21 controllers) |
| Auth JWT (service + middleware) | ✅ COMPLETO |
| Reportes QuestPDF | ✅ PARCIAL (7/17) |
| Reportes empresa (4) + controller | ✅ COMPLETO |
| Reportes QuestPDF (17 reportes) | ❌ PENDIENTE |
| ServicesExternos.API | ❌ PENDIENTE |
| Frontend Next.js | ❌ PENDIENTE |
@@ -30,28 +32,22 @@
### 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, LeadQueryRepository.cs
- [x] ContratoRepository.cs, CotizacionRepository.cs
- [x] AlumnoRepository.cs, UsuarioRepository.cs, InformeRepository.cs
- [x] **1.2 Ventas.Core — Entidades y DTOs**
- [x] 20 entidades del plan + Ejecutivo.cs + extras
- [x] DTOs, Enums (4), Interfaces (7)
- [x] **1.3 Ventas.Infrastructure — Acceso a Datos**
- [x] VentasDbContext (EF Core + Npgsql)
- [x] 7 repositorios (Lead, LeadQuery, Contrato, Cotizacion, Alumno, Usuario, Informe)
- [x] SpComplexQueries.cs (Dapper multi-resultset)
- [x] Configurations/ + Dapper/ directories
- [x] **1.4 Ventas.Services — Lógica de Negocio** (~2 sem)
- [x] LeadService.cs, UsuarioService.cs, JwtService.cs (refactored to use repos)
- [x] ContratoService.cs, CotizacionService.cs, AlumnoService.cs, InformeService.cs (refactored to use repos)
- [x] **1.5 Ventas.API — Controladores REST** (~1 sem)
- [x] AuthController.cs (login + perfil)
- [x] LeadController.cs (CRUD + actividades + pagos)
- [x] ContratoController.cs (CRUD + PDF + empresa + firma)
- [x] CotizacionController.cs (CRUD + detalle + pago + empresa)
- [x] AlumnoController.cs (CRUD + apoderado + consultas)
- [x] InformeController.cs (reportes ventas, leads, documentos)
- [x] Program.cs completo (DI, JWT, CORS)
- [x] appsettings.json con connection strings
- [x] **1.5 Ventas.API — Controladores REST** (21 controllers)
- [x] Auth, Lead, Contrato, Cotizacion, Alumno
- [x] Arqueo, Curso, Descuento, Documento, Empresa
- [x] Horario, Jornada, Programa, Propuesta, Region
- [x] Sala, Sede, Tarifa, Usuario, Informe, Report
- [x] **1.6 Auth JWT** (~3 días)
- [x] JwtService.cs (generación de tokens)
- [x] Login endpoint funcional
@@ -114,6 +110,7 @@
| 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) |
| 2026-07-08 | F1 | Completados 13 controllers faltantes, Ejecutivo entity, ArqueoService, JwtMiddleware, SpComplexQueries | Fase 2 |
| | | | |
| | | | |