first commit
This commit is contained in:
76
prisma/seed.ts
Normal file
76
prisma/seed.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
type ComboLabel = "Encargo" | "XL";
|
||||
|
||||
function buildMachineName(type: "washer" | "dryer", number: number, label?: ComboLabel) {
|
||||
const base = type === "washer" ? `Lavadora ${number}` : `Secadora ${number}`;
|
||||
return label ? `${base} (${label})` : base;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
await prisma.appConfig.upsert({
|
||||
where: { id: 1 },
|
||||
update: {},
|
||||
create: {
|
||||
id: 1,
|
||||
businessName: "La Burbuja",
|
||||
timezone: "America/Monterrey",
|
||||
currency: "MXN",
|
||||
serialPortPath: "COM3",
|
||||
serialBaudRate: 9600,
|
||||
relayMockMode: true
|
||||
}
|
||||
});
|
||||
|
||||
await prisma.employee.upsert({
|
||||
where: { id: "admin-default" },
|
||||
update: {},
|
||||
create: {
|
||||
id: "admin-default",
|
||||
name: "Administrador",
|
||||
pin: "1234",
|
||||
isAdmin: true
|
||||
}
|
||||
});
|
||||
|
||||
const existingMachineCount = await prisma.machine.count();
|
||||
|
||||
if (existingMachineCount === 0) {
|
||||
const combos = [
|
||||
...Array.from({ length: 12 }, (_, index) => ({ number: index + 1 as number, label: undefined as ComboLabel | undefined })),
|
||||
{ number: 13, label: "Encargo" as const },
|
||||
{ number: 14, label: "Encargo" as const },
|
||||
{ number: 15, label: "Encargo" as const },
|
||||
{ number: 16, label: "XL" as const }
|
||||
];
|
||||
|
||||
const washers = combos.map((combo, index) => ({
|
||||
name: buildMachineName("washer", combo.number, combo.label),
|
||||
type: "washer" as const,
|
||||
relayChannel: index,
|
||||
defaultPriceCents: 8000,
|
||||
defaultDurationMinutes: 35
|
||||
}));
|
||||
const dryers = combos.map((combo, index) => ({
|
||||
name: buildMachineName("dryer", combo.number, combo.label),
|
||||
type: "dryer" as const,
|
||||
relayChannel: index + combos.length,
|
||||
defaultPriceCents: 6000,
|
||||
defaultDurationMinutes: 45
|
||||
}));
|
||||
const machines = [...washers, ...dryers];
|
||||
await prisma.machine.createMany({ data: machines });
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
.then(async () => {
|
||||
await prisma.$disconnect();
|
||||
})
|
||||
.catch(async (error) => {
|
||||
console.error(error);
|
||||
await prisma.$disconnect();
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user