Apariencia
Configuración global
Panel para ajustar parámetros que afectan a todo el sistema.
URL: /admin/configuracionModelo: Setting (tabla key-value).
Parámetros configurables
| Key | Descripción | Default |
|---|---|---|
membership.price_mxn | Precio actual de la membresía (informativo; el cobro real viene del MembershipPlan) | 499 |
membership.duration_days | Duración al contratar | 180 |
membership.expiring_warning_days | Cuándo empezar a avisar al candidato | 15 |
interview.default_duration_minutes | Duración por defecto al agendar | 60 |
interview.default_timezone | Zona horaria default | America/Mexico_City |
notifications.email_enabled | Enviar correos o solo in-app | true |
notifications.rejection_email_to_candidate | Notificar candidato en rechazos | false |
pipeline.auto_withdraw_on_vacancy_closed | Al cubrir vacante, auto-withdraw de otros | true |
company.allow_self_registration | Permitir empresas auto-registrarse | false |
psychometrics.min_completed_to_appear | Cuántas pruebas completadas para aparecer en directorio | 0 |
directory.default_per_page | Paginación default | 20 |
cv.template | Template a usar para PDF | humae_v1 |
Endpoints
| Operación | Ruta |
|---|---|
| Listar todas | GET /admin/settings |
| Leer una | GET /admin/settings/{key} |
| Actualizar | PATCH /admin/settings/{key} con {"value": "..."} |
Valor guardado como JSON string (soporta bool, int, string, array).
Plantillas de correo
URL: /admin/email-templates
Cada plantilla de App\Notifications\* tiene su versión HTML + plain text en resources/views/emails/*. El admin puede:
- Editar el subject y el cuerpo.
- Previsualizar con datos de prueba.
- Resetear al default.
Plantillas disponibles:
welcome.blade.php— bienvenida post-verificaciónverify_email.blade.php— verificación de correoreset_password.blade.php— recuperaciónmembership_activated.blade.php— activación tras pagointerview_scheduled.blade.phpinterview_confirmed.blade.phpinterview_rescheduled.blade.phpinterview_cancelled.blade.phpassignment_presented.blade.phpcandidate_hired.blade.php
Placeholders disponibles en cada plantilla: {user.name}, {membership.expires_at}, etc.
Gestión de usuarios
URL: /admin/usuarios
- Listar todos los users con filtros por rol, estado, fecha.
- Ver detalle (sin password).
- Cambiar rol:
POST /admin/users/{id}/rolescon{"role": "recruiter"}. - Suspender:
POST /admin/users/{id}/suspendcon razón. - Reactivar:
POST /admin/users/{id}/activate. - Cerrar todas las sesiones:
POST /admin/users/{id}/logout-all(revoca todos los tokens Sanctum). - Reenviar verificación:
POST /admin/users/{id}/resend-verification.
Gestión de empresas
URL: /admin/empresas
- CRUD completo de empresas.
- Asignar recruiter principal a cada empresa.
- Invitar owners.
- Ver todas las vacantes de una empresa con estado.
Monitoreo en tiempo real
(Fase 2)
- Live counter de usuarios conectados.
- Alertas por errores (Sentry).
- Health check proactivo (
/healthping cada minuto).
Exportación de datos
GET /admin/export/candidates.csv— todos los candidatosGET /admin/export/vacancies.csvGET /admin/export/payments.csv
Incluyen filtros por fecha.
Backup & restore
- Backup DB: se corre con cron externo (
mysqldump), no desde la plataforma. - Backup de
storage/app(avatares + documentos):resticdiario contra almacenamiento offsite. Retención 14 días × 12 semanas × 12 meses. - Restore: proceso manual, documentado en
DEPLOYMENT.md.
Permisos para acciones críticas
Acciones como suspender usuarios, cancelar pagos, eliminar empresas requieren double confirmación:
- Modal con el detalle.
- Input con el nombre del recurso ("escribe ACME CORP para confirmar").
- Ejecución.
Se registra en logs.
Siguiente
Auditoría y soporte: Auditoría →

