This commit is contained in:
Nông Đức Huy
2026-08-13 23:20:22 +07:00
parent 3e5d38ec18
commit 3d6b0e0d4e
145 changed files with 7817 additions and 801 deletions
@@ -0,0 +1,106 @@
-- CreateEnum
CREATE TYPE "Locale" AS ENUM ('VI', 'EN');
-- CreateTable
CREATE TABLE "brand_translations" (
"brand_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"name" VARCHAR(160) NOT NULL,
"slug" VARCHAR(180) NOT NULL,
"description" TEXT,
"meta_title" VARCHAR(255),
"meta_description" TEXT,
CONSTRAINT "brand_translations_pkey" PRIMARY KEY ("brand_id","locale")
);
-- CreateTable
CREATE TABLE "category_translations" (
"category_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"name" VARCHAR(160) NOT NULL,
"slug" VARCHAR(180) NOT NULL,
"description" TEXT,
"meta_title" VARCHAR(255),
"meta_description" TEXT,
CONSTRAINT "category_translations_pkey" PRIMARY KEY ("category_id","locale")
);
-- CreateTable
CREATE TABLE "collection_translations" (
"collection_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"name" VARCHAR(160) NOT NULL,
"slug" VARCHAR(180) NOT NULL,
"description" TEXT,
"meta_title" VARCHAR(255),
"meta_description" TEXT,
CONSTRAINT "collection_translations_pkey" PRIMARY KEY ("collection_id","locale")
);
-- CreateTable
CREATE TABLE "product_translations" (
"product_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"name" VARCHAR(255) NOT NULL,
"slug" VARCHAR(280) NOT NULL,
"short_description" VARCHAR(500),
"description" TEXT,
"meta_title" VARCHAR(255),
"meta_description" TEXT,
CONSTRAINT "product_translations_pkey" PRIMARY KEY ("product_id","locale")
);
-- CreateTable
CREATE TABLE "product_option_translations" (
"option_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"name" VARCHAR(60) NOT NULL,
CONSTRAINT "product_option_translations_pkey" PRIMARY KEY ("option_id","locale")
);
-- CreateTable
CREATE TABLE "product_option_value_translations" (
"option_value_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"label" VARCHAR(80) NOT NULL,
CONSTRAINT "product_option_value_translations_pkey" PRIMARY KEY ("option_value_id","locale")
);
-- CreateIndex
CREATE UNIQUE INDEX "brand_translations_locale_slug_key" ON "brand_translations"("locale", "slug");
-- CreateIndex
CREATE UNIQUE INDEX "category_translations_locale_slug_key" ON "category_translations"("locale", "slug");
-- CreateIndex
CREATE UNIQUE INDEX "collection_translations_locale_slug_key" ON "collection_translations"("locale", "slug");
-- CreateIndex
CREATE INDEX "product_translations_locale_name_idx" ON "product_translations"("locale", "name");
-- CreateIndex
CREATE UNIQUE INDEX "product_translations_locale_slug_key" ON "product_translations"("locale", "slug");
-- AddForeignKey
ALTER TABLE "brand_translations" ADD CONSTRAINT "brand_translations_brand_id_fkey" FOREIGN KEY ("brand_id") REFERENCES "brands"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "category_translations" ADD CONSTRAINT "category_translations_category_id_fkey" FOREIGN KEY ("category_id") REFERENCES "categories"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "collection_translations" ADD CONSTRAINT "collection_translations_collection_id_fkey" FOREIGN KEY ("collection_id") REFERENCES "collections"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "product_translations" ADD CONSTRAINT "product_translations_product_id_fkey" FOREIGN KEY ("product_id") REFERENCES "products"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "product_option_translations" ADD CONSTRAINT "product_option_translations_option_id_fkey" FOREIGN KEY ("option_id") REFERENCES "product_options"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "product_option_value_translations" ADD CONSTRAINT "product_option_value_translations_option_value_id_fkey" FOREIGN KEY ("option_value_id") REFERENCES "product_option_values"("id") ON DELETE CASCADE ON UPDATE CASCADE;
@@ -0,0 +1,11 @@
-- AlterTable
ALTER TABLE "products" ADD COLUMN "in_stock" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "is_on_sale" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "max_price_amount" INTEGER,
ADD COLUMN "min_price_amount" INTEGER;
-- CreateIndex
CREATE INDEX "products_status_min_price_amount_idx" ON "products"("status", "min_price_amount");
-- CreateIndex
CREATE INDEX "products_status_in_stock_idx" ON "products"("status", "in_stock");
@@ -0,0 +1,12 @@
-- CreateTable
CREATE TABLE "product_attribute_translations" (
"attribute_id" UUID NOT NULL,
"locale" "Locale" NOT NULL,
"label" VARCHAR(120) NOT NULL,
"value" VARCHAR(500) NOT NULL,
CONSTRAINT "product_attribute_translations_pkey" PRIMARY KEY ("attribute_id","locale")
);
-- AddForeignKey
ALTER TABLE "product_attribute_translations" ADD CONSTRAINT "product_attribute_translations_attribute_id_fkey" FOREIGN KEY ("attribute_id") REFERENCES "product_attributes"("id") ON DELETE CASCADE ON UPDATE CASCADE;