# Implementación Chat Psicológico ## Objetivo Agregar chat de apoyo psicológico separado del chat médico, sin límite de mensajes y con opción de terminar conversación. ## Diferencias con Chat Médico - ❌ Sin límite de 10 mensajes - ✅ Usuario termina conversación cuando quiera - 💭 Prompt enfocado en apoyo emocional - 🔒 Disclaimer sobre no ser terapia profesional --- ## Tareas ### 1. Base de Datos - [x] Agregar enum `ChatType` (MEDICAL, PSYCHOLOGICAL) - [x] Agregar campo `chatType` al modelo Conversation - [x] Crear y ejecutar migración ### 2. Página de Selección - [x] Crear `/chat/select` con AuthenticatedLayout - [x] Diseño con componentes UI reutilizables (Card) - [x] Dos opciones claras con descripción - [x] Redireccionamiento según selección - [x] Integración con sidebar y estilo consistente ### 3. Backend/API - [x] Modificar `/api/chat` para aceptar `chatType` - [x] Prompt del sistema para chat psicológico - [x] Remover límite de mensajes para tipo PSYCHOLOGICAL - [ ] Endpoint para terminar conversación manualmente ### 4. Frontend - [x] Adaptar `ImprovedChatInterface.tsx` para ambos tipos - [x] Modificar `useChat.ts` para manejar tipos - [x] Historial separado por tipo de chat (localStorage) - [x] Botón "Terminar conversación" en chat psicológico - [x] Modificar header para mostrar tipo de chat - [x] Iconos y colores diferenciados según tipo ### 5. Seguridad y Ética - [x] Disclaimer claro al inicio (en página de selección) - [x] Disclaimer en chat psicológico con info de limitaciones - [x] Detección de crisis en prompt (keywords: suicidio, autolesión) - [x] Números de emergencia en disclaimer - [x] Banner dinámico con recursos de ayuda inmediata si se detecta crisis - [x] Múltiples líneas de emergencia (Cruz Roja, Policía, Línea de Vida) ### 6. Testing - [ ] Crear conversación psicológica - [ ] Verificar sin límite de mensajes - [ ] Probar terminación manual - [ ] Validar separación de historiales - [ ] Test de crisis detection (respuesta del LLM con crisisDetected: true) --- ## Notas Técnicas - Reutilizar componentes existentes de chat médico - Mismo modelo de BD, solo agregar discriminante `chatType` - Prompts almacenados en código o variables de entorno