|
@@ -1,131 +0,0 @@
|
|
|
-import { PrismaClient } from '@prisma/client'
|
|
|
|
|
-import bcrypt from 'bcryptjs'
|
|
|
|
|
-import { config } from '../src/lib/config'
|
|
|
|
|
-
|
|
|
|
|
-const prisma = new PrismaClient()
|
|
|
|
|
-
|
|
|
|
|
-async function main() {
|
|
|
|
|
- console.log('🌱 Iniciando seed de la base de datos...')
|
|
|
|
|
- console.log(`📊 Usando base de datos: ${config.database.url}`)
|
|
|
|
|
- console.log('')
|
|
|
|
|
-
|
|
|
|
|
- // Buscar usuario paciente existente
|
|
|
|
|
- const patient = await prisma.user.findUnique({
|
|
|
|
|
- where: { email: 'patient@ani-assistant.com' }
|
|
|
|
|
- })
|
|
|
|
|
-
|
|
|
|
|
- if (!patient) {
|
|
|
|
|
- console.log('❌ Usuario paciente no encontrado. Ejecuta "npm run db:setup" primero.')
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // Buscar usuario doctor existente
|
|
|
|
|
- const doctor = await prisma.user.findUnique({
|
|
|
|
|
- where: { email: 'admin@ani-assistant.com' }
|
|
|
|
|
- })
|
|
|
|
|
-
|
|
|
|
|
- if (!doctor) {
|
|
|
|
|
- console.log('❌ Usuario doctor no encontrado. Ejecuta "npm run db:setup" primero.')
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- console.log('👤 Usuario Paciente:', patient.email, `(${patient.username})`)
|
|
|
|
|
- console.log('👨⚕️ Usuario Doctor:', doctor.email, `(${doctor.username})`)
|
|
|
|
|
- console.log('')
|
|
|
|
|
-
|
|
|
|
|
- // Crear algunos reportes de ejemplo
|
|
|
|
|
- const sampleReports = [
|
|
|
|
|
- {
|
|
|
|
|
- userId: patient.id,
|
|
|
|
|
- content: `=== REPORTE MÉDICO ===
|
|
|
|
|
-
|
|
|
|
|
-Fecha: ${new Date().toLocaleDateString('es-ES')}
|
|
|
|
|
-Hora: ${new Date().toLocaleTimeString('es-ES')}
|
|
|
|
|
-
|
|
|
|
|
-SÍNTOMAS IDENTIFICADOS:
|
|
|
|
|
-• Dolor de cabeza
|
|
|
|
|
-• Fatiga
|
|
|
|
|
-
|
|
|
|
|
-RESUMEN DE LA CONSULTA:
|
|
|
|
|
-El paciente realizó 3 consulta(s) con el asistente virtual.
|
|
|
|
|
-
|
|
|
|
|
-TEMAS PRINCIPALES:
|
|
|
|
|
-• Medicamentos
|
|
|
|
|
-• Tratamiento
|
|
|
|
|
-
|
|
|
|
|
-RECOMENDACIONES DEL ASISTENTE:
|
|
|
|
|
-1. Descansar adecuadamente
|
|
|
|
|
-2. Mantener hidratación
|
|
|
|
|
-3. Consultar con médico si persisten los síntomas
|
|
|
|
|
-
|
|
|
|
|
-NOTA: Este es un reporte generado automáticamente por el asistente virtual. Se recomienda consultar con un profesional médico para un diagnóstico completo.
|
|
|
|
|
-
|
|
|
|
|
-=== FIN DEL REPORTE ===`,
|
|
|
|
|
- messages: [
|
|
|
|
|
- { role: 'user', content: 'Tengo dolor de cabeza desde hace 2 días' },
|
|
|
|
|
- { role: 'assistant', content: 'Entiendo tu preocupación. ¿Has notado algún otro síntoma?' },
|
|
|
|
|
- { role: 'user', content: 'También me siento muy cansado' },
|
|
|
|
|
- { role: 'assistant', content: 'Es importante descansar y mantenerse hidratado' },
|
|
|
|
|
- { role: 'user', content: '¿Qué medicamentos puedo tomar?' },
|
|
|
|
|
- { role: 'assistant', content: 'Te recomiendo consultar con un médico para el tratamiento adecuado' }
|
|
|
|
|
- ]
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- userId: patient.id,
|
|
|
|
|
- content: `=== REPORTE MÉDICO ===
|
|
|
|
|
-
|
|
|
|
|
-Fecha: ${new Date().toLocaleDateString('es-ES')}
|
|
|
|
|
-Hora: ${new Date().toLocaleTimeString('es-ES')}
|
|
|
|
|
-
|
|
|
|
|
-SÍNTOMAS IDENTIFICADOS:
|
|
|
|
|
-• Dolor de garganta
|
|
|
|
|
-• Tos
|
|
|
|
|
-
|
|
|
|
|
-RESUMEN DE LA CONSULTA:
|
|
|
|
|
-El paciente realizó 3 consulta(s) con el asistente virtual.
|
|
|
|
|
-
|
|
|
|
|
-TEMAS PRINCIPALES:
|
|
|
|
|
-• Prevención
|
|
|
|
|
-• Control de síntomas
|
|
|
|
|
-
|
|
|
|
|
-RECOMENDACIONES DEL ASISTENTE:
|
|
|
|
|
-1. Gargar con agua salada
|
|
|
|
|
-2. Mantener reposo
|
|
|
|
|
-3. Beber abundante líquido
|
|
|
|
|
-
|
|
|
|
|
-NOTA: Este es un reporte generado automáticamente por el asistente virtual. Se recomienda consultar con un profesional médico para un diagnóstico completo.
|
|
|
|
|
-
|
|
|
|
|
-=== FIN DEL REPORTE ===`,
|
|
|
|
|
- messages: [
|
|
|
|
|
- { role: 'user', content: 'Me duele la garganta y tengo tos' },
|
|
|
|
|
- { role: 'assistant', content: '¿Cuánto tiempo llevas con estos síntomas?' },
|
|
|
|
|
- { role: 'user', content: 'Desde ayer por la mañana' },
|
|
|
|
|
- { role: 'assistant', content: 'Te recomiendo descansar y beber mucho líquido' }
|
|
|
|
|
- ]
|
|
|
|
|
- }
|
|
|
|
|
- ]
|
|
|
|
|
-
|
|
|
|
|
- for (const report of sampleReports) {
|
|
|
|
|
- await prisma.record.upsert({
|
|
|
|
|
- where: {
|
|
|
|
|
- id: `sample-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`
|
|
|
|
|
- },
|
|
|
|
|
- update: {},
|
|
|
|
|
- create: report,
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- console.log('✅ Seed completado exitosamente!')
|
|
|
|
|
- console.log('👤 Usuario Paciente:', patient.email)
|
|
|
|
|
- console.log('👨⚕️ Usuario Doctor:', doctor.email)
|
|
|
|
|
- console.log('📊 Reportes de ejemplo creados')
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-main()
|
|
|
|
|
- .catch((e) => {
|
|
|
|
|
- console.error('❌ Error durante el seed:', e)
|
|
|
|
|
- process.exit(1)
|
|
|
|
|
- })
|
|
|
|
|
- .finally(async () => {
|
|
|
|
|
- await prisma.$disconnect()
|
|
|
|
|
- })
|
|
|