TreatmentType and ProsthesisType database shcema and data updated. Lab dispatch wired through new data.

This commit is contained in:
2026-07-06 20:40:19 +03:30
parent 3e81c110a3
commit 667b08ed0c
48 changed files with 1813 additions and 275 deletions

View File

@@ -0,0 +1,95 @@
-- Prosthesis catalog refactor: drop treatment workflow steps, add prosthesis catalog tables
CREATE TYPE "CatalogEntityKind" AS ENUM ('TREATMENT_TYPE', 'PROSTHESIS_TYPE', 'LAB_WORKFLOW_STEP');
ALTER TABLE "treatment_types" ADD COLUMN "isActive" BOOLEAN NOT NULL DEFAULT true;
DROP TABLE IF EXISTS "treatment_workflow_steps";
CREATE TABLE "catalog_translations" (
"id" TEXT NOT NULL,
"entityKind" "CatalogEntityKind" NOT NULL,
"entityCode" TEXT NOT NULL,
"locale" TEXT NOT NULL,
"label" TEXT NOT NULL,
CONSTRAINT "catalog_translations_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "catalog_translations_entityKind_entityCode_locale_key"
ON "catalog_translations"("entityKind", "entityCode", "locale");
CREATE TABLE "prosthesis_types" (
"id" TEXT NOT NULL,
"code" TEXT NOT NULL,
"sortOrder" INTEGER NOT NULL DEFAULT 0,
"isActive" BOOLEAN NOT NULL DEFAULT true,
"skipPackingShipping" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "prosthesis_types_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "prosthesis_types_code_key" ON "prosthesis_types"("code");
CREATE TABLE "lab_workflow_steps" (
"id" TEXT NOT NULL,
"code" TEXT NOT NULL,
"sortOrder" INTEGER NOT NULL DEFAULT 0,
CONSTRAINT "lab_workflow_steps_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "lab_workflow_steps_code_key" ON "lab_workflow_steps"("code");
CREATE TABLE "prosthesis_type_steps" (
"id" TEXT NOT NULL,
"prosthesisTypeId" TEXT NOT NULL,
"labWorkflowStepId" TEXT NOT NULL,
"stepOrder" INTEGER NOT NULL,
CONSTRAINT "prosthesis_type_steps_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "prosthesis_type_steps_prosthesisTypeId_stepOrder_key"
ON "prosthesis_type_steps"("prosthesisTypeId", "stepOrder");
CREATE UNIQUE INDEX "prosthesis_type_steps_prosthesisTypeId_labWorkflowStepId_key"
ON "prosthesis_type_steps"("prosthesisTypeId", "labWorkflowStepId");
ALTER TABLE "prosthesis_type_steps"
ADD CONSTRAINT "prosthesis_type_steps_prosthesisTypeId_fkey"
FOREIGN KEY ("prosthesisTypeId") REFERENCES "prosthesis_types"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "prosthesis_type_steps"
ADD CONSTRAINT "prosthesis_type_steps_labWorkflowStepId_fkey"
FOREIGN KEY ("labWorkflowStepId") REFERENCES "lab_workflow_steps"("id") ON DELETE CASCADE ON UPDATE CASCADE;
CREATE TABLE "lab_case_tooth_prosthesis" (
"id" TEXT NOT NULL,
"labCaseId" TEXT NOT NULL,
"treatmentDetailId" TEXT NOT NULL,
"tooth" TEXT NOT NULL,
"prosthesisTypeCode" TEXT NOT NULL,
CONSTRAINT "lab_case_tooth_prosthesis_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "lab_case_tooth_prosthesis_labCaseId_treatmentDetailId_tooth_key"
ON "lab_case_tooth_prosthesis"("labCaseId", "treatmentDetailId", "tooth");
ALTER TABLE "lab_case_tooth_prosthesis"
ADD CONSTRAINT "lab_case_tooth_prosthesis_labCaseId_fkey"
FOREIGN KEY ("labCaseId") REFERENCES "lab_cases"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "lab_case_tooth_prosthesis"
ADD CONSTRAINT "lab_case_tooth_prosthesis_treatmentDetailId_fkey"
FOREIGN KEY ("treatmentDetailId") REFERENCES "treatment_details"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- Lab case tasks: add prosthesis fields and update unique constraint
ALTER TABLE "lab_case_tasks" ADD COLUMN "prosthesisTypeCode" TEXT NOT NULL DEFAULT '';
ALTER TABLE "lab_case_tasks" ADD COLUMN "workflowStepCode" TEXT NOT NULL DEFAULT '';
DROP INDEX IF EXISTS "lab_case_tasks_labCaseId_tooth_treatmentType_stepOrder_key";
CREATE UNIQUE INDEX "lab_case_tasks_labCaseId_treatmentDetailId_tooth_stepOrder_key"
ON "lab_case_tasks"("labCaseId", "treatmentDetailId", "tooth", "stepOrder");