feat(P18A-1,P18A-2): 新增资产模型权限与默认分类
这个提交包含在:
@@ -0,0 +1,89 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "AssetCardStatus" AS ENUM ('in_stock', 'in_use', 'under_repair', 'retired', 'archived');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "asset_categories" (
|
||||
"id" UUID NOT NULL,
|
||||
"code" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"document_category_id" UUID,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"archived_at" TIMESTAMP(3),
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"created_by" UUID,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
"updated_by" UUID,
|
||||
|
||||
CONSTRAINT "asset_categories_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "asset_cards" (
|
||||
"id" UUID NOT NULL,
|
||||
"asset_no" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"category_id" UUID NOT NULL,
|
||||
"legal_entity_id" UUID NOT NULL,
|
||||
"cost_center_id" UUID NOT NULL,
|
||||
"purchase_request_id" UUID,
|
||||
"serial_no" TEXT,
|
||||
"location" TEXT,
|
||||
"status" "AssetCardStatus" NOT NULL DEFAULT 'in_stock',
|
||||
"assignee_employee_id" UUID,
|
||||
"activated_at" DATE,
|
||||
"retired_at" DATE,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"created_by" UUID,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL,
|
||||
"updated_by" UUID,
|
||||
|
||||
CONSTRAINT "asset_cards_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "asset_categories_code_key" ON "asset_categories"("code");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_categories_status" ON "asset_categories"("enabled", "archived_at");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_categories_document_category" ON "asset_categories"("document_category_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "asset_cards_asset_no_key" ON "asset_cards"("asset_no");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_cards_category" ON "asset_cards"("category_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_cards_legal_entity" ON "asset_cards"("legal_entity_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_cards_cost_center" ON "asset_cards"("cost_center_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_cards_purchase_request" ON "asset_cards"("purchase_request_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_cards_assignee" ON "asset_cards"("assignee_employee_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "idx_asset_cards_status" ON "asset_cards"("status");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "asset_categories" ADD CONSTRAINT "asset_categories_document_category_id_fkey" FOREIGN KEY ("document_category_id") REFERENCES "document_categories"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_category_id_fkey" FOREIGN KEY ("category_id") REFERENCES "asset_categories"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_legal_entity_id_fkey" FOREIGN KEY ("legal_entity_id") REFERENCES "legal_entities"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_cost_center_id_fkey" FOREIGN KEY ("cost_center_id") REFERENCES "cost_centers"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_purchase_request_id_fkey" FOREIGN KEY ("purchase_request_id") REFERENCES "purchase_requests"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_assignee_employee_id_fkey" FOREIGN KEY ("assignee_employee_id") REFERENCES "employees"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
在新工单中引用
屏蔽一个用户