654 lines
22 KiB
SQL
654 lines
22 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "Status" AS ENUM ('CREATED', 'ACTIVE', 'INACTIVE');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "UserType" AS ENUM ('USER', 'MESSENGER', 'DELEGATE', 'AGENCY');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "CustomerType" AS ENUM ('CORP', 'PERS');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Menu" (
|
|
"id" TEXT NOT NULL,
|
|
"caption" TEXT NOT NULL,
|
|
"captionEN" TEXT NOT NULL,
|
|
"menuType" TEXT NOT NULL,
|
|
"url" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
"parentId" TEXT,
|
|
|
|
CONSTRAINT "Menu_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "RoleMenuPermission" (
|
|
"id" TEXT NOT NULL,
|
|
"userRole" TEXT NOT NULL,
|
|
"permission" TEXT NOT NULL,
|
|
"menuId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "RoleMenuPermission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserMenuPermission" (
|
|
"id" TEXT NOT NULL,
|
|
"permission" TEXT NOT NULL,
|
|
"menuId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "UserMenuPermission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "MenuComponent" (
|
|
"id" TEXT NOT NULL,
|
|
"componentId" TEXT NOT NULL,
|
|
"componentTag" TEXT NOT NULL,
|
|
"menuId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "MenuComponent_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "RoleMenuComponentPermission" (
|
|
"id" TEXT NOT NULL,
|
|
"userRole" TEXT NOT NULL,
|
|
"permission" TEXT NOT NULL,
|
|
"menuComponentId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "RoleMenuComponentPermission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "RunningNo" (
|
|
"key" TEXT NOT NULL,
|
|
"value" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "RunningNo_pkey" PRIMARY KEY ("key")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserMenuComponentPermission" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"menuComponentId" TEXT NOT NULL,
|
|
"permission" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "UserMenuComponentPermission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Province" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameEN" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Province_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "District" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameEN" TEXT NOT NULL,
|
|
"provinceId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "District_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SubDistrict" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameEN" TEXT NOT NULL,
|
|
"zipCode" TEXT NOT NULL,
|
|
"districtId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "SubDistrict_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Branch" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"taxNo" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameEN" TEXT NOT NULL,
|
|
"address" TEXT NOT NULL,
|
|
"addressEN" TEXT NOT NULL,
|
|
"telephoneNo" TEXT NOT NULL,
|
|
"provinceId" TEXT,
|
|
"districtId" TEXT,
|
|
"subDistrictId" TEXT,
|
|
"zipCode" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"contactName" TEXT,
|
|
"lineId" TEXT,
|
|
"latitude" TEXT NOT NULL,
|
|
"longitude" TEXT NOT NULL,
|
|
"isHeadOffice" BOOLEAN NOT NULL DEFAULT false,
|
|
"headOfficeId" TEXT,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Branch_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "BranchContact" (
|
|
"id" TEXT NOT NULL,
|
|
"telephoneNo" TEXT NOT NULL,
|
|
"branchId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "BranchContact_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "BranchUser" (
|
|
"id" TEXT NOT NULL,
|
|
"branchId" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "BranchUser_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT,
|
|
"firstName" TEXT NOT NULL,
|
|
"firstNameEN" TEXT NOT NULL,
|
|
"lastName" TEXT NOT NULL,
|
|
"lastNameEN" TEXT NOT NULL,
|
|
"username" TEXT NOT NULL,
|
|
"gender" TEXT NOT NULL,
|
|
"address" TEXT NOT NULL,
|
|
"addressEN" TEXT NOT NULL,
|
|
"provinceId" TEXT,
|
|
"districtId" TEXT,
|
|
"subDistrictId" TEXT,
|
|
"zipCode" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"telephoneNo" TEXT NOT NULL,
|
|
"registrationNo" TEXT,
|
|
"startDate" TIMESTAMP(3),
|
|
"retireDate" TIMESTAMP(3),
|
|
"checkpoint" TEXT,
|
|
"checkpointEN" TEXT,
|
|
"userType" "UserType" NOT NULL,
|
|
"userRole" TEXT NOT NULL,
|
|
"discountCondition" TEXT,
|
|
"licenseNo" TEXT,
|
|
"licenseIssueDate" TIMESTAMP(3),
|
|
"licenseExpireDate" TIMESTAMP(3),
|
|
"sourceNationality" TEXT,
|
|
"importNationality" TEXT,
|
|
"trainingPlace" TEXT,
|
|
"responsibleArea" TEXT,
|
|
"birthDate" TIMESTAMP(3),
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Customer" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"personName" TEXT NOT NULL,
|
|
"personNameEN" TEXT,
|
|
"customerType" "CustomerType" NOT NULL,
|
|
"customerName" TEXT NOT NULL,
|
|
"customerNameEN" TEXT NOT NULL,
|
|
"taxNo" TEXT,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Customer_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CustomerBranch" (
|
|
"id" TEXT NOT NULL,
|
|
"branchNo" INTEGER NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"legalPersonNo" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"nameEN" TEXT NOT NULL,
|
|
"customerId" TEXT NOT NULL,
|
|
"taxNo" TEXT,
|
|
"registerName" TEXT NOT NULL,
|
|
"registerDate" TIMESTAMP(3) NOT NULL,
|
|
"authorizedCapital" TEXT NOT NULL,
|
|
"address" TEXT NOT NULL,
|
|
"addressEN" TEXT NOT NULL,
|
|
"provinceId" TEXT,
|
|
"districtId" TEXT,
|
|
"subDistrictId" TEXT,
|
|
"zipCode" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"telephoneNo" TEXT NOT NULL,
|
|
"employmentOffice" TEXT NOT NULL,
|
|
"bussinessType" TEXT NOT NULL,
|
|
"bussinessTypeEN" TEXT NOT NULL,
|
|
"jobPosition" TEXT NOT NULL,
|
|
"jobPositionEN" TEXT NOT NULL,
|
|
"jobDescription" TEXT NOT NULL,
|
|
"saleEmployee" TEXT NOT NULL,
|
|
"payDate" TIMESTAMP(3) NOT NULL,
|
|
"wageRate" INTEGER NOT NULL,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CustomerBranch_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Employee" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"nrcNo" TEXT NOT NULL,
|
|
"firstName" TEXT NOT NULL,
|
|
"firstNameEN" TEXT NOT NULL,
|
|
"lastName" TEXT NOT NULL,
|
|
"lastNameEN" TEXT NOT NULL,
|
|
"dateOfBirth" TIMESTAMP(3) NOT NULL,
|
|
"gender" TEXT NOT NULL,
|
|
"nationality" TEXT NOT NULL,
|
|
"address" TEXT,
|
|
"addressEN" TEXT,
|
|
"provinceId" TEXT,
|
|
"districtId" TEXT,
|
|
"subDistrictId" TEXT,
|
|
"zipCode" TEXT NOT NULL,
|
|
"passportType" TEXT NOT NULL,
|
|
"passportNumber" TEXT NOT NULL,
|
|
"passportIssueDate" TIMESTAMP(3) NOT NULL,
|
|
"passportExpiryDate" TIMESTAMP(3) NOT NULL,
|
|
"passportIssuingCountry" TEXT NOT NULL,
|
|
"passportIssuingPlace" TEXT NOT NULL,
|
|
"previousPassportReference" TEXT,
|
|
"visaType" TEXT,
|
|
"visaNumber" TEXT,
|
|
"visaIssueDate" TIMESTAMP(3),
|
|
"visaExpiryDate" TIMESTAMP(3),
|
|
"visaIssuingPlace" TEXT,
|
|
"visaStayUntilDate" TIMESTAMP(3),
|
|
"tm6Number" TEXT,
|
|
"entryDate" TIMESTAMP(3),
|
|
"workerStatus" TEXT,
|
|
"customerBranchId" TEXT,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Employee_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "EmployeeHistory" (
|
|
"id" TEXT NOT NULL,
|
|
"field" TEXT NOT NULL,
|
|
"valueBefore" JSONB NOT NULL,
|
|
"valueAfter" JSONB NOT NULL,
|
|
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedByUserId" TEXT,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"masterId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "EmployeeHistory_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "EmployeeCheckup" (
|
|
"id" TEXT NOT NULL,
|
|
"employeeId" TEXT NOT NULL,
|
|
"checkupResult" TEXT,
|
|
"checkupType" TEXT,
|
|
"provinceId" TEXT,
|
|
"hospitalName" TEXT,
|
|
"remark" TEXT,
|
|
"medicalBenefitScheme" TEXT,
|
|
"insuranceCompany" TEXT,
|
|
"coverageStartDate" TIMESTAMP(3),
|
|
"coverageExpireDate" TIMESTAMP(3),
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "EmployeeCheckup_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "EmployeeWork" (
|
|
"id" TEXT NOT NULL,
|
|
"employeeId" TEXT NOT NULL,
|
|
"ownerName" TEXT,
|
|
"positionName" TEXT,
|
|
"jobType" TEXT,
|
|
"workplace" TEXT,
|
|
"workPermitNo" TEXT,
|
|
"workPermitIssuDate" TIMESTAMP(3),
|
|
"workPermitExpireDate" TIMESTAMP(3),
|
|
"workEndDate" TIMESTAMP(3),
|
|
"remark" TEXT,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "EmployeeWork_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "EmployeeOtherInfo" (
|
|
"id" TEXT NOT NULL,
|
|
"employeeId" TEXT NOT NULL,
|
|
"citizenId" TEXT,
|
|
"fatherBirthPlace" TEXT,
|
|
"fatherFirstName" TEXT,
|
|
"fatherLastName" TEXT,
|
|
"motherBirthPlace" TEXT,
|
|
"motherFirstName" TEXT,
|
|
"motherLastName" TEXT,
|
|
"fatherFirstNameEN" TEXT,
|
|
"fatherLastNameEN" TEXT,
|
|
"motherFirstNameEN" TEXT,
|
|
"motherLastNameEN" TEXT,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "EmployeeOtherInfo_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Service" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"detail" TEXT NOT NULL,
|
|
"attributes" JSONB,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Service_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Work" (
|
|
"id" TEXT NOT NULL,
|
|
"order" INTEGER NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"attributes" JSONB,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"serviceId" TEXT,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Work_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WorkProduct" (
|
|
"order" INTEGER NOT NULL,
|
|
"workId" TEXT NOT NULL,
|
|
"productId" TEXT NOT NULL,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "WorkProduct_pkey" PRIMARY KEY ("workId","productId")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ProductGroup" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"detail" TEXT NOT NULL,
|
|
"remark" TEXT NOT NULL,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "ProductGroup_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "ProductType" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"detail" TEXT NOT NULL,
|
|
"remark" TEXT NOT NULL,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
"productGroupId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "ProductType_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Product" (
|
|
"id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"detail" TEXT NOT NULL,
|
|
"process" INTEGER NOT NULL,
|
|
"price" DOUBLE PRECISION NOT NULL,
|
|
"agentPrice" DOUBLE PRECISION NOT NULL,
|
|
"serviceCharge" DOUBLE PRECISION NOT NULL,
|
|
"status" "Status" NOT NULL DEFAULT 'CREATED',
|
|
"statusOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"remark" TEXT,
|
|
"productTypeId" TEXT,
|
|
"createdBy" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedBy" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Product_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "RunningNo_key_key" ON "RunningNo"("key");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Menu" ADD CONSTRAINT "Menu_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Menu"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "RoleMenuPermission" ADD CONSTRAINT "RoleMenuPermission_menuId_fkey" FOREIGN KEY ("menuId") REFERENCES "Menu"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserMenuPermission" ADD CONSTRAINT "UserMenuPermission_menuId_fkey" FOREIGN KEY ("menuId") REFERENCES "Menu"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserMenuPermission" ADD CONSTRAINT "UserMenuPermission_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MenuComponent" ADD CONSTRAINT "MenuComponent_menuId_fkey" FOREIGN KEY ("menuId") REFERENCES "Menu"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "RoleMenuComponentPermission" ADD CONSTRAINT "RoleMenuComponentPermission_menuComponentId_fkey" FOREIGN KEY ("menuComponentId") REFERENCES "MenuComponent"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserMenuComponentPermission" ADD CONSTRAINT "UserMenuComponentPermission_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserMenuComponentPermission" ADD CONSTRAINT "UserMenuComponentPermission_menuComponentId_fkey" FOREIGN KEY ("menuComponentId") REFERENCES "MenuComponent"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "District" ADD CONSTRAINT "District_provinceId_fkey" FOREIGN KEY ("provinceId") REFERENCES "Province"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "SubDistrict" ADD CONSTRAINT "SubDistrict_districtId_fkey" FOREIGN KEY ("districtId") REFERENCES "District"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Branch" ADD CONSTRAINT "Branch_provinceId_fkey" FOREIGN KEY ("provinceId") REFERENCES "Province"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Branch" ADD CONSTRAINT "Branch_districtId_fkey" FOREIGN KEY ("districtId") REFERENCES "District"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Branch" ADD CONSTRAINT "Branch_subDistrictId_fkey" FOREIGN KEY ("subDistrictId") REFERENCES "SubDistrict"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Branch" ADD CONSTRAINT "Branch_headOfficeId_fkey" FOREIGN KEY ("headOfficeId") REFERENCES "Branch"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BranchContact" ADD CONSTRAINT "BranchContact_branchId_fkey" FOREIGN KEY ("branchId") REFERENCES "Branch"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BranchUser" ADD CONSTRAINT "BranchUser_branchId_fkey" FOREIGN KEY ("branchId") REFERENCES "Branch"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "BranchUser" ADD CONSTRAINT "BranchUser_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "User" ADD CONSTRAINT "User_provinceId_fkey" FOREIGN KEY ("provinceId") REFERENCES "Province"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "User" ADD CONSTRAINT "User_districtId_fkey" FOREIGN KEY ("districtId") REFERENCES "District"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "User" ADD CONSTRAINT "User_subDistrictId_fkey" FOREIGN KEY ("subDistrictId") REFERENCES "SubDistrict"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CustomerBranch" ADD CONSTRAINT "CustomerBranch_customerId_fkey" FOREIGN KEY ("customerId") REFERENCES "Customer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CustomerBranch" ADD CONSTRAINT "CustomerBranch_provinceId_fkey" FOREIGN KEY ("provinceId") REFERENCES "Province"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CustomerBranch" ADD CONSTRAINT "CustomerBranch_districtId_fkey" FOREIGN KEY ("districtId") REFERENCES "District"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "CustomerBranch" ADD CONSTRAINT "CustomerBranch_subDistrictId_fkey" FOREIGN KEY ("subDistrictId") REFERENCES "SubDistrict"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Employee" ADD CONSTRAINT "Employee_provinceId_fkey" FOREIGN KEY ("provinceId") REFERENCES "Province"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Employee" ADD CONSTRAINT "Employee_districtId_fkey" FOREIGN KEY ("districtId") REFERENCES "District"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Employee" ADD CONSTRAINT "Employee_subDistrictId_fkey" FOREIGN KEY ("subDistrictId") REFERENCES "SubDistrict"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Employee" ADD CONSTRAINT "Employee_customerBranchId_fkey" FOREIGN KEY ("customerBranchId") REFERENCES "CustomerBranch"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EmployeeHistory" ADD CONSTRAINT "EmployeeHistory_updatedByUserId_fkey" FOREIGN KEY ("updatedByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EmployeeHistory" ADD CONSTRAINT "EmployeeHistory_masterId_fkey" FOREIGN KEY ("masterId") REFERENCES "Employee"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EmployeeCheckup" ADD CONSTRAINT "EmployeeCheckup_employeeId_fkey" FOREIGN KEY ("employeeId") REFERENCES "Employee"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EmployeeCheckup" ADD CONSTRAINT "EmployeeCheckup_provinceId_fkey" FOREIGN KEY ("provinceId") REFERENCES "Province"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EmployeeWork" ADD CONSTRAINT "EmployeeWork_employeeId_fkey" FOREIGN KEY ("employeeId") REFERENCES "Employee"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "EmployeeOtherInfo" ADD CONSTRAINT "EmployeeOtherInfo_employeeId_fkey" FOREIGN KEY ("employeeId") REFERENCES "Employee"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Work" ADD CONSTRAINT "Work_serviceId_fkey" FOREIGN KEY ("serviceId") REFERENCES "Service"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkProduct" ADD CONSTRAINT "WorkProduct_workId_fkey" FOREIGN KEY ("workId") REFERENCES "Work"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WorkProduct" ADD CONSTRAINT "WorkProduct_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "ProductType" ADD CONSTRAINT "ProductType_productGroupId_fkey" FOREIGN KEY ("productGroupId") REFERENCES "ProductGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Product" ADD CONSTRAINT "Product_productTypeId_fkey" FOREIGN KEY ("productTypeId") REFERENCES "ProductType"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|