# Controladores

# Controladores (app/Http/Controllers)

###   


1. **`ArchivoController`:** Verifica permisos locales y devuelve archivos privados incrustados de forma segura dentro del sistema (`view()`) o fuerza su descarga directa (`download()`).
2. **`CcooController`:** Administra el ciclo de vida de creación de las "Comunicaciones Oficiales" (CCOO), y se apoya en el asistente de IA para pre-rellenar los contenidos institucionales.
3. **`EmailController`:** Lista la bandeja de entrada de correos sincronizados. Al visualizar un email (`show()`) también gatilla el servicio de OpenAI para tener un borrador de respuesta listo para usar.
4. **`ExpedienteController`:** Es el corazón del ruteo. Gestiona el registro y visualización de expedientes. Interactúa con el blockchain de archivos mostrándo si el documento es válido y permite búsquedas múltiples por año y clave.
5. **`LogController`:** Actúa como auditor. Recibe y registra todos los eventos sensibles del usuario guardando su IP, User-Agent corporativo y la dependencia activa generando un hash único por la actividad sobre Expedientes o Solicitudes.
6. **`NotificationController`:** Permite al usuario ver, listar y marcar como leídas las notificaciones propias (`markAsRead()`, `markAllAsRead()`).
7. **`SolicitudController`:** El origen del trámite web (*CRUD* de solicitudes). Una vez que una solicitud pasa todos los requerimientos (`aprobar()`), este controlador usa la función `caratular()` para transformarla en un "Expediente formal" dentro del sistema.