setup.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import { PrismaClient } from '@prisma/client'
  2. import bcrypt from 'bcryptjs'
  3. import { generateUniqueUsername } from '../src/lib/server-utils'
  4. const prisma = new PrismaClient()
  5. async function setup() {
  6. try {
  7. console.log('🔧 Configurando base de datos...')
  8. // Crear usuario super administrador
  9. const superAdminUsername = await generateUniqueUsername('Super', 'Admin')
  10. const superAdminPassword = await bcrypt.hash('admin123', 12)
  11. const superAdmin = await prisma.user.upsert({
  12. where: { email: 'admin@ani-assistant.com' },
  13. update: {},
  14. create: {
  15. name: 'Super',
  16. lastname: 'Admin',
  17. username: superAdminUsername,
  18. email: 'admin@ani-assistant.com',
  19. password: superAdminPassword,
  20. role: 'ADMIN'
  21. }
  22. })
  23. console.log(`✅ Usuario administrador creado: ${superAdmin.email}`)
  24. // Crear usuario doctor
  25. const doctorUsername = await generateUniqueUsername('Doctor', 'Sistema')
  26. const doctorPassword = await bcrypt.hash('doctor123', 12)
  27. const doctor = await prisma.user.upsert({
  28. where: { email: 'doctor@ani-assistant.com' },
  29. update: {},
  30. create: {
  31. name: 'Doctor',
  32. lastname: 'Sistema',
  33. username: doctorUsername,
  34. email: 'doctor@ani-assistant.com',
  35. password: doctorPassword,
  36. role: 'DOCTOR'
  37. }
  38. })
  39. console.log(`✅ Usuario doctor creado: ${doctor.email}`)
  40. // Crear usuario paciente de prueba
  41. const patientUsername = await generateUniqueUsername('Paciente', 'Prueba')
  42. const patientPassword = await bcrypt.hash('patient123', 12)
  43. const patient = await prisma.user.upsert({
  44. where: { email: 'patient@ani-assistant.com' },
  45. update: {},
  46. create: {
  47. name: 'Paciente',
  48. lastname: 'Prueba',
  49. username: patientUsername,
  50. email: 'patient@ani-assistant.com',
  51. password: patientPassword,
  52. role: 'PATIENT'
  53. }
  54. })
  55. console.log(`✅ Usuario paciente creado: ${patient.email}`)
  56. console.log('')
  57. console.log('🎉 Configuración completada!')
  58. console.log('')
  59. console.log('📋 Credenciales de acceso:')
  60. console.log('')
  61. console.log('Administrador:')
  62. console.log(' Email: admin@ani-assistant.com')
  63. console.log(' Contraseña: admin123')
  64. console.log('')
  65. console.log('👨‍⚕️ Doctor:')
  66. console.log(' Email: doctor@ani-assistant.com')
  67. console.log(' Contraseña: doctor123')
  68. console.log('')
  69. console.log('👤 Paciente:')
  70. console.log(' Email: patient@ani-assistant.com')
  71. console.log(' Contraseña: patient123')
  72. console.log('')
  73. } catch (error) {
  74. console.error('❌ Error durante la configuración:', error)
  75. } finally {
  76. await prisma.$disconnect()
  77. }
  78. }
  79. setup()