import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { console.log('Starting equipment seed...'); const locations = await prisma.location.findMany(); const luebeck = locations.find(l => l.slug === 'luebeck'); const berlin = locations.find(l => l.slug === 'berlin'); const rostock = locations.find(l => l.slug === 'rostock'); let dieFotoboxJungs = await prisma.project.findFirst({ where: { name: 'Die Fotobox Jungs' }, }); if (!dieFotoboxJungs) { dieFotoboxJungs = await prisma.project.create({ data: { name: 'Die Fotobox Jungs', description: 'Aufgekauftes Projekt mit eigenem Equipment', active: true, }, }); console.log('Created project: Die Fotobox Jungs'); } const equipment = []; for (let i = 1; i <= 10; i++) { equipment.push({ name: `Citizen CX-02 #${i}`, type: 'PRINTER', brand: 'Citizen', model: 'CX-02', serialNumber: `CX02-LUE-${String(i).padStart(3, '0')}`, quantity: 1, status: 'AVAILABLE', locationId: luebeck?.id, }); } equipment.push({ name: 'Citizen CX-02 Berlin', type: 'PRINTER', brand: 'Citizen', model: 'CX-02', serialNumber: 'CX02-BER-001', quantity: 1, status: 'AVAILABLE', locationId: berlin?.id, }); equipment.push({ name: 'Citizen CX-02 Rostock', type: 'PRINTER', brand: 'Citizen', model: 'CX-02', serialNumber: 'CX02-ROS-001', quantity: 1, status: 'AVAILABLE', locationId: rostock?.id, }); for (let i = 1; i <= 4; i++) { equipment.push({ name: `DNP 620 #${i} (Fotobox Jungs)`, type: 'PRINTER', brand: 'DNP', model: '620', serialNumber: `DNP620-FBJ-${String(i).padStart(3, '0')}`, quantity: 1, status: 'AVAILABLE', projectId: dieFotoboxJungs.id, }); } equipment.push({ name: 'DNP DS-RX1 HS Rostock', type: 'PRINTER', brand: 'DNP', model: 'DS-RX1 HS', serialNumber: 'DSRX1HS-ROS-001', quantity: 1, status: 'AVAILABLE', locationId: rostock?.id, }); equipment.push({ name: 'Roter Teppich Set 1', type: 'CARPET', quantity: 1, status: 'AVAILABLE', locationId: luebeck?.id, notes: '3m x 1m, inkl. Befestigung', }); equipment.push({ name: 'VIP Absperrbänder Set', type: 'VIP_BARRIER', quantity: 2, status: 'AVAILABLE', locationId: luebeck?.id, notes: '2x Ständer mit rotem Samt-Band', }); equipment.push({ name: 'Accessoires-Koffer Standard', type: 'ACCESSORIES_KIT', quantity: 1, status: 'AVAILABLE', locationId: luebeck?.id, notes: 'Hüte, Brillen, Schnurrbärte, Schilder', }); equipment.push({ name: 'Druckerpapier Citizen 10x15', type: 'PRINTER_PAPER', brand: 'Citizen', model: '10x15cm', quantity: 1, currentStock: 50, minStockLevel: 10, status: 'AVAILABLE', locationId: luebeck?.id, notes: 'Für Citizen CX-02 Drucker', }); equipment.push({ name: 'Druckerpapier DNP 15x20', type: 'PRINTER_PAPER', brand: 'DNP', model: '15x20cm', quantity: 1, currentStock: 8, minStockLevel: 10, status: 'AVAILABLE', locationId: luebeck?.id, notes: 'Für DNP 620 Drucker', }); equipment.push({ name: 'Stativ Manfrotto #1', type: 'TRIPOD', brand: 'Manfrotto', model: 'Compact Advanced', quantity: 1, status: 'AVAILABLE', locationId: luebeck?.id, }); equipment.push({ name: 'Stativ Manfrotto #2', type: 'TRIPOD', brand: 'Manfrotto', model: 'Compact Advanced', quantity: 1, status: 'AVAILABLE', locationId: berlin?.id, }); for (const item of equipment) { await prisma.equipment.create({ data: item as any, }); } console.log(`Created ${equipment.length} equipment items`); console.log('Equipment seed completed!'); } main() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });