mirror of
https://git.meshkee.com/BaloutPastry/backend.git
synced 2026-08-11 22:31:00 +04:30
39 lines
1.2 KiB
SQL
39 lines
1.2 KiB
SQL
-- AlterTable
|
|
ALTER TABLE "Category" ADD COLUMN "slug" TEXT;
|
|
|
|
-- Backfill from nameEn (latin slug). Keep unique with id suffix on collision.
|
|
UPDATE "Category" AS c
|
|
SET "slug" = lower(
|
|
regexp_replace(
|
|
regexp_replace(trim(c."nameEn"), '[^a-zA-Z0-9]+', '-', 'g'),
|
|
'(^-+|-+$)',
|
|
'',
|
|
'g'
|
|
)
|
|
);
|
|
|
|
UPDATE "Category"
|
|
SET "slug" = 'category'
|
|
WHERE "slug" IS NULL OR "slug" = '';
|
|
|
|
UPDATE "Category" AS c
|
|
SET "slug" = c."slug" || '-' || right(c."id", 4)
|
|
WHERE c."id" IN (
|
|
SELECT id FROM (
|
|
SELECT id, ROW_NUMBER() OVER (PARTITION BY slug ORDER BY "createdAt", id) AS rn
|
|
FROM "Category"
|
|
) d
|
|
WHERE rn > 1
|
|
);
|
|
|
|
ALTER TABLE "Category" ALTER COLUMN "slug" SET NOT NULL;
|
|
|
|
-- Prefer readable Persian-romanized top-level slugs
|
|
UPDATE "Category" SET "slug" = 'shirini' WHERE "nameFa" = 'شیرینی' AND "parentId" IS NULL;
|
|
UPDATE "Category" SET "slug" = 'cake' WHERE "nameFa" = 'کیک' AND "parentId" IS NULL;
|
|
UPDATE "Category" SET "slug" = 'shirini-tar' WHERE "nameFa" = 'شیرینی تر';
|
|
UPDATE "Category" SET "slug" = 'shirini-khoshk' WHERE "nameFa" = 'شیرینی خشک';
|
|
UPDATE "Category" SET "slug" = 'cream-cake' WHERE "nameFa" = 'کیک خامه';
|
|
|
|
CREATE UNIQUE INDEX "Category_slug_key" ON "Category"("slug");
|