diff --git a/scripts/src/seed.ts b/scripts/src/seed.ts index 8bc267a5..b618f7da 100644 --- a/scripts/src/seed.ts +++ b/scripts/src/seed.ts @@ -294,15 +294,15 @@ async function main() { }, { categoryId: beveragesCat?.id ?? null, - nameAr: "قهوة عربية", - nameEn: "Arabic Coffee", + nameAr: "قهوة سعودي", + nameEn: "Saudi Coffee", price: "0.00", isAvailable: true, sortOrder: 2, }, { categoryId: beveragesCat?.id ?? null, - nameAr: "قهوة بلاك", + nameAr: "بلاك كوفي", nameEn: "Black Coffee", price: "0.00", isAvailable: true, @@ -321,6 +321,40 @@ async function main() { await db.insert(servicesTable).values(services).onConflictDoNothing({ target: servicesTable.nameEn }); console.log("Services created"); + // ----- Services: idempotent renames for existing rows ----- + // Older deployments seeded "Arabic Coffee" / "قهوة عربية" and + // "قهوة بلاك". We renamed them to "Saudi Coffee" / "قهوة سعودي" + // and "بلاك كوفي" respectively, and pointed the Saudi Coffee row + // at a clearer brown image. Apply once per row, never overwrite + // a value an admin has already changed. + const existingServices = await db.select().from(servicesTable); + const legacyArabicCoffee = existingServices.find( + (s) => s.nameEn === "Arabic Coffee", + ); + if (legacyArabicCoffee) { + await db + .update(servicesTable) + .set({ + nameAr: "قهوة سعودي", + nameEn: "Saudi Coffee", + imageUrl: + legacyArabicCoffee.imageUrl && + legacyArabicCoffee.imageUrl !== "service-images/arabic-coffee.png" + ? legacyArabicCoffee.imageUrl + : "service-images/saudi-coffee.png", + }) + .where(eq(servicesTable.id, legacyArabicCoffee.id)); + } + const legacyBlackCoffee = existingServices.find( + (s) => s.nameEn === "Black Coffee" && s.nameAr === "قهوة بلاك", + ); + if (legacyBlackCoffee) { + await db + .update(servicesTable) + .set({ nameAr: "بلاك كوفي" }) + .where(eq(servicesTable.id, legacyBlackCoffee.id)); + } + // ----- Groups: idempotent migration ----- await db .insert(groupsTable)