080c488e3b
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { PrismaClient } from "@prisma/client";
|
|
import { PrismaPg } from "@prisma/adapter-pg";
|
|
import bcrypt from "bcryptjs";
|
|
|
|
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL! });
|
|
const prisma = new PrismaClient({ adapter });
|
|
|
|
async function main() {
|
|
const hash = (pwd: string) => bcrypt.hash(pwd, 10);
|
|
|
|
await prisma.admin.upsert({
|
|
where: { email: "jefe1@taller.com" },
|
|
update: {},
|
|
create: {
|
|
email: "jefe1@taller.com",
|
|
nombre: "Jefe 1",
|
|
passwordHash: await hash("jefe1password"),
|
|
},
|
|
});
|
|
|
|
await prisma.admin.upsert({
|
|
where: { email: "jefe2@taller.com" },
|
|
update: {},
|
|
create: {
|
|
email: "jefe2@taller.com",
|
|
nombre: "Jefe 2",
|
|
passwordHash: await hash("jefe2password"),
|
|
},
|
|
});
|
|
|
|
const servicios = [
|
|
{ nombre: "Cambio de aceite y filtro", duracionHoras: 1 },
|
|
{ nombre: "Cambio de bujías", duracionHoras: 1 },
|
|
{ nombre: "Cambio de frenos", duracionHoras: 2 },
|
|
{ nombre: "Alineación y balanceo", duracionHoras: 1.5 },
|
|
{ nombre: "Cambio de correa de distribución", duracionHoras: 4 },
|
|
{ nombre: "Cambio de distribución con bomba de agua", duracionHoras: 8 },
|
|
{ nombre: "Revisión general", duracionHoras: 2 },
|
|
];
|
|
|
|
for (const s of servicios) {
|
|
const existe = await prisma.tipoServicio.findFirst({ where: { nombre: s.nombre } });
|
|
if (!existe) await prisma.tipoServicio.create({ data: s });
|
|
}
|
|
|
|
console.log("Seed completado");
|
|
}
|
|
|
|
main().finally(() => prisma.$disconnect());
|