-- CreateEnum CREATE TYPE "DealStatus" AS ENUM ('PENDING', 'ACTIVE', 'EXPIRED', 'REJECTED'); -- CreateEnum CREATE TYPE "SaleType" AS ENUM ('ONLINE', 'OFFLINE', 'CODE'); -- CreateEnum CREATE TYPE "AffiliateType" AS ENUM ('AFFILIATE', 'NON_AFFILIATE', 'USER_AFFILIATE'); -- AlterTable ALTER TABLE "Deal" ADD COLUMN "affiliateType" "AffiliateType" NOT NULL DEFAULT 'NON_AFFILIATE', ADD COLUMN "companyId" INTEGER, ADD COLUMN "customCompany" TEXT, ADD COLUMN "saletype" "SaleType" NOT NULL DEFAULT 'ONLINE', ADD COLUMN "status" "DealStatus" NOT NULL DEFAULT 'PENDING'; -- CreateTable CREATE TABLE "CompanyDomain" ( "id" SERIAL NOT NULL, "domain" TEXT NOT NULL, "companyId" INTEGER NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdById" INTEGER NOT NULL, CONSTRAINT "CompanyDomain_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Company" ( "id" SERIAL NOT NULL, "name" TEXT NOT NULL, "isActive" BOOLEAN NOT NULL DEFAULT true, "Links" TEXT, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdById" INTEGER NOT NULL, CONSTRAINT "Company_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "CompanyDomain_domain_key" ON "CompanyDomain"("domain"); -- CreateIndex CREATE UNIQUE INDEX "Company_name_key" ON "Company"("name"); -- AddForeignKey ALTER TABLE "CompanyDomain" ADD CONSTRAINT "CompanyDomain_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "CompanyDomain" ADD CONSTRAINT "CompanyDomain_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Company" ADD CONSTRAINT "Company_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Deal" ADD CONSTRAINT "Deal_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE SET NULL ON UPDATE CASCADE;