| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- 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()
- })
|