ADM-001: Medios y Secciones (fundacional) #15
Reference in New Issue
Block a user
Delete Branch "feature/ADM-001"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Entrega el catálogo fundacional Medio + Seccion — base del resto del sistema comercial (20+ UDTs downstream bloqueadas hasta esta UDT). Incluye CRUD admin completo en backend + frontend con auditoría obligatoria y Temporal Tables (retention 10 años).
IAuditLoggerdentro deTransactionScopefail-closed. Endpoints bajo/api/v1/admin/{medios,secciones}con[RequirePermission](administracion:medios:gestionarya existía en V005;administracion:secciones:gestionares nuevo en V011).features/medios/+features/secciones/con TanStack Query + shadcn. Rutas admin + gating por permiso en sidebar.Alcance y decisiones
Seccion.MedioId NOT NULL) — M:N difrerida a ADM-003 con tabla auxiliarTipoMedioPlataformaEmpresaIdINT NULLsin FK — INT-003 agregará FK vía ALTERActivo+ endpointsdeactivate/reactivateidempotentes)UQ_Medio_Codigoglobal;UQ_Seccion_MedioId_CodigocompuestoSeccion.TipoVARCHAR(20) CHECK IN ('clasificados','notables','suplementos')administracion:medios:gestionar(V005) +administracion:secciones:gestionar(V011)Scope OUT (explícito — previene creep)
PlataformaEmpresaId) → INT-003Auditoría y Temporal Tables
2.5 Auditoría.md: Medio y Seccion ⏳ → ✅medio.{create,update,deactivate,reactivate}yseccion.{...}TransactionScopeque elIAuditLogger.LogAsync→ fail-closedAuditEvent, (2) row enMedio_History/Seccion_Historytras updateCommits (8)
ff7d898feat(db): V011 + V012 migrations + temporalbb98dbffeat(domain): entities + 4 exceptionsf672de7feat(medios,secciones): application layer + handlers TDDa1a8e6efix(tests): realign Application.Tests con seed 22 permisos2f0da2dfeat(infra): MedioRepository + SeccionRepositorya6f4011fix(tests): resolve regresiones Api.Tests fixture13480adfeat(api): Controllers + ExceptionFilter mappings6b946f6feat(web): Medios + Secciones UI + hooks + routingTest plan
dotnet test tests/SIGCM2.Application.Tests— 458 passed / 0 faileddotnet test tests/SIGCM2.Api.Tests— 166 passed / 0 failedcd src/web && npx vitest run— 207 passed / 0 failed (38 test files)WHERE NOT EXISTS).Verificación post-merge
[x] ADM-001(Obsidian — no viene en el PR, gitignored)./admin/mediosy/admin/secciones→ crear + editar + deactivate → verificar rows enAuditEventy*_History.Downstream desbloqueado
ADM-003, ADM-008, ADM-009, CAT-001..006, PRD-002, PRC-003/004/008, VTA-001, FAC-*, INT-001/002/003/004.