-- BlogPageLocale: entity-based rows with composite (entityKey, locale). Migrate from locale-as-PK layout.

ALTER TABLE "BlogPageLocale" RENAME TO "BlogPageLocale_old";
ALTER INDEX "BlogPageLocale_pkey" RENAME TO "BlogPageLocale_old_pkey";

CREATE TABLE "BlogPageLocale" (
    "id" TEXT NOT NULL,
    "entityKey" TEXT NOT NULL,
    "locale" TEXT NOT NULL,
    "heroJson" JSONB NOT NULL,
    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
    "updatedAt" TIMESTAMP(3) NOT NULL,

    CONSTRAINT "BlogPageLocale_pkey" PRIMARY KEY ("id")
);

CREATE UNIQUE INDEX "BlogPageLocale_entityKey_locale_key" ON "BlogPageLocale"("entityKey", "locale");
CREATE INDEX "BlogPageLocale_entityKey_idx" ON "BlogPageLocale"("entityKey");

INSERT INTO "BlogPageLocale" ("id", "entityKey", "locale", "heroJson", "createdAt", "updatedAt")
SELECT
  gen_random_uuid()::text,
  'blog',
  o."locale",
  o."heroJson",
  o."createdAt",
  o."updatedAt"
FROM "BlogPageLocale_old" o;

DROP TABLE "BlogPageLocale_old";
