/** * Ensure the six website dock category slugs exist (local / staging). * Production already uses these slugs on shirinibalout.com. * * Usage: npm run ensure:dock-categories */ import { PrismaClient } from '@prisma/client' const prisma = new PrismaClient() const DOCK_CATEGORIES = [ { nameFa: 'کیک', nameEn: 'Cake', slug: 'cake', sortOrder: 1 }, { nameFa: 'شیرینی', nameEn: 'Pastry', slug: 'pastry', sortOrder: 2 }, { nameFa: 'سوهان', nameEn: 'Sohan', slug: 'sohan', sortOrder: 3 }, { nameFa: 'دسر', nameEn: 'Dessert', slug: 'dessert', sortOrder: 4 }, { nameFa: 'شکلات', nameEn: 'Choclate', slug: 'choclate', sortOrder: 5 }, { nameFa: 'باقلوا و حلوا', nameEn: 'Baklava and Halva', slug: 'baklava-and-halva', sortOrder: 6, }, ] async function main() { for (const cat of DOCK_CATEGORIES) { await prisma.category.upsert({ where: { slug: cat.slug }, create: cat, update: { nameFa: cat.nameFa, nameEn: cat.nameEn, sortOrder: cat.sortOrder, }, }) } const roots = await prisma.category.findMany({ where: { parentId: null }, select: { slug: true, nameFa: true, nameEn: true }, orderBy: { sortOrder: 'asc' }, }) console.log(JSON.stringify(roots, null, 2)) } main() .catch((err) => { console.error(err) process.exitCode = 1 }) .finally(async () => { await prisma.$disconnect() })