-- Add stockLimit to EventOption ALTER TABLE "EventOption" ADD COLUMN "stockLimit" INTEGER NOT NULL DEFAULT 0; -- Add stockLimit to EarlyBirdTier ALTER TABLE "EarlyBirdTier" ADD COLUMN "stockLimit" INTEGER NOT NULL DEFAULT 0; -- CreateTable OptionVariant CREATE TABLE "OptionVariant" ( "id" TEXT NOT NULL, "eventOptionId" TEXT NOT NULL, "name" TEXT NOT NULL, "price" DOUBLE PRECISION, "stockLimit" INTEGER NOT NULL DEFAULT 0, "order" INTEGER NOT NULL DEFAULT 0, CONSTRAINT "OptionVariant_pkey" PRIMARY KEY ("id") ); -- Add new columns to RegistrationOption ALTER TABLE "RegistrationOption" ADD COLUMN "variantId" TEXT; ALTER TABLE "RegistrationOption" ADD COLUMN "appliedTierId" TEXT; ALTER TABLE "RegistrationOption" ADD COLUMN "priceSnapshot" DOUBLE PRECISION; -- CreateIndex CREATE INDEX "OptionVariant_eventOptionId_idx" ON "OptionVariant"("eventOptionId"); CREATE INDEX "RegistrationOption_variantId_idx" ON "RegistrationOption"("variantId"); CREATE INDEX "RegistrationOption_appliedTierId_idx" ON "RegistrationOption"("appliedTierId"); -- AddForeignKey ALTER TABLE "OptionVariant" ADD CONSTRAINT "OptionVariant_eventOptionId_fkey" FOREIGN KEY ("eventOptionId") REFERENCES "EventOption"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "RegistrationOption" ADD CONSTRAINT "RegistrationOption_variantId_fkey" FOREIGN KEY ("variantId") REFERENCES "OptionVariant"("id") ON DELETE SET NULL ON UPDATE CASCADE; ALTER TABLE "RegistrationOption" ADD CONSTRAINT "RegistrationOption_appliedTierId_fkey" FOREIGN KEY ("appliedTierId") REFERENCES "EarlyBirdTier"("id") ON DELETE SET NULL ON UPDATE CASCADE;