generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") directUrl = env("DIRECT_URL") } model Contact { id Int @id @default(autoincrement()) nombre String email String @unique mensaje String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@index([email, createdAt]) @@map("contact") } model Formulario { id String @id @default(uuid()) @db.Uuid numero_voluntario Int @unique @default(autoincrement()) nombre String segundo_nombre String? apellido String documento_nro String? documento_tipo String? correo String fecha_nacimiento DateTime? @db.Date nacionalidad String? sexo String? direccion String? ciudad String? estado String? pais String? codigo_postal String? telefono String? whatsapp String? profesion String? lugar_trabajo String? nivel_academico String? status String @default("pendiente") form_version String? email_sent_at DateTime? @db.Timestamptz submitted_at DateTime @default(now()) @db.Timestamptz updated_at DateTime @updatedAt @db.Timestamptz respuestas Respuesta[] @@index([correo]) @@index([status]) @@index([pais]) @@index([submitted_at]) @@map("formularios") } model Respuesta { id String @id @default(uuid()) @db.Uuid formulario_id String @db.Uuid key String value String seccion String @default("") created_at DateTime @default(now()) @db.Timestamptz formulario Formulario @relation(fields: [formulario_id], references: [id], onDelete: Cascade) @@index([formulario_id]) @@index([key]) @@index([seccion]) @@map("respuestas") } model Seccion { id String @id @default(uuid()) @db.Uuid title_key String title String? orden Int @default(0) columns Int @default(1) created_at DateTime @default(now()) @db.Timestamptz campos Campo[] @@index([orden]) @@map("secciones") } model Campo { id String @id @default(uuid()) @db.Uuid key String @unique label_key String tipo String seccion_id String? @db.Uuid required Boolean @default(false) orden Int @default(0) options Json? @db.JsonB source String? created_at DateTime @default(now()) @db.Timestamptz seccion Seccion? @relation(fields: [seccion_id], references: [id], onDelete: SetNull) @@index([seccion_id]) @@index([tipo]) @@map("campos") } model FormVersion { id String @id @default(uuid()) @db.Uuid version String config Json @db.JsonB active Boolean @default(false) created_at DateTime @default(now()) @db.Timestamptz @@map("form_versions") } model Admin { id String @id @default(uuid()) @db.Uuid auth_user_id String @unique @db.Uuid email String @unique nombre String rol String @default("coordinador") activo Boolean @default(true) ultimo_acceso DateTime? @db.Timestamptz created_at DateTime @default(now()) @db.Timestamptz @@index([email]) @@map("admins") }