Files
backend/scripts/ensure-dock-categories.ts

54 lines
1.4 KiB
TypeScript

/**
* 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()
})