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

4.4 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) 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)

  • 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)
  • 1.3 Ventas.Infrastructure — Acceso a Datos (~2-3 sem)
    • VentasDbContext.cs (EF Core + Npgsql)
    • LeadRepository.cs (SPs INSERT/UPDATE con Dapper)
    • 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