Files
taller_automotriz/prisma/schema.prisma
T
Beldor 93ad1cb8c1 feat: bootstrap taller-turnos project
Estructura inicial con Next.js 14, PostgreSQL/Prisma 7, autenticación por
magic link (clientes) y JWT (admins), lógica de scheduling con 4 slots
paralelos y API routes completas para cliente y panel admin.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 11:51:19 -03:00

103 lines
2.4 KiB
Plaintext

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
}
model Cliente {
id String @id @default(cuid())
email String @unique
nombre String
apellido String
telefono String
createdAt DateTime @default(now())
autos Auto[]
turnos Turno[]
magicTokens MagicToken[]
}
model Auto {
id String @id @default(cuid())
clienteId String
patente String @unique
marca String
modelo String
anio Int
createdAt DateTime @default(now())
cliente Cliente @relation(fields: [clienteId], references: [id])
turnos Turno[]
historial HistorialServicio[]
}
model TipoServicio {
id String @id @default(cuid())
nombre String
duracionHoras Float
activo Boolean @default(true)
turnos Turno[]
historial HistorialServicio[]
}
model Turno {
id String @id @default(cuid())
clienteId String
autoId String
tipoServicioId String
fechaInicio DateTime
fechaFin DateTime
estado EstadoTurno @default(PENDIENTE)
createdAt DateTime @default(now())
cliente Cliente @relation(fields: [clienteId], references: [id])
auto Auto @relation(fields: [autoId], references: [id])
tipoServicio TipoServicio @relation(fields: [tipoServicioId], references: [id])
}
model HistorialServicio {
id String @id @default(cuid())
autoId String
adminId String
tipoServicioId String?
descripcion String
observaciones String?
fechaRealizado DateTime
createdAt DateTime @default(now())
auto Auto @relation(fields: [autoId], references: [id])
admin Admin @relation(fields: [adminId], references: [id])
tipoServicio TipoServicio? @relation(fields: [tipoServicioId], references: [id])
}
model Admin {
id String @id @default(cuid())
email String @unique
nombre String
passwordHash String
createdAt DateTime @default(now())
historial HistorialServicio[]
}
model MagicToken {
id String @id @default(cuid())
clienteId String
token String @unique
expiresAt DateTime
usado Boolean @default(false)
createdAt DateTime @default(now())
cliente Cliente @relation(fields: [clienteId], references: [id])
}
enum EstadoTurno {
PENDIENTE
CONFIRMADO
CANCELADO
COMPLETADO
}