feat: implementar módulo completo de recordatorios
Implementado
— POST /api/v1/recordatorios con validaciones Jakarta (@NotBlank, @NotNull, @Future)
— Recurrencia diaria/semanal/mensual/anual/personalizada con fecha fin y máximo de ocurrencias
— Tipos: LLAMADA, REUNION, TAREA_ADMINISTRATIVA, PERSONALIZADO con filtros
— CalendarService intercambiable por perfil Spring (@Profile mock/prod)
— Scheduler @Scheduled cada 15 min que escanea recordatorios próximos y dispara notificaciones
— Código autogenerado REC-YYYY-NNNNNN (ReminderCodeGenerator)
— CRUD completo con baja lógica, búsqueda, edición y reprogramación
— Estados PENDING / OVERDUE / COMPLETED / CANCELLED con filtros dinámicos
— POST /{id}/promocionar: crea una instancia desde un recordatorio cumplido
— CRUD de categorías (GET/POST/PUT/DELETE) con baja lógica
Técnico
- Entidad JPA con auditoría (createdBy, updatedBy, createdAt, updatedAt)
- Filtros dinámicos con JPA Specification + Pageable
- Enfoque 2 para recurrencia: al completar genera nueva ocurrencia con límites
- Auditoría en todas las operaciones (AuditService.log)
- Tests: 10 unitarios + 9 de integración
- Migración V13 agrega tablas reminders + reminder_categories