liuyun 6f32875295 feat(c0): 服务机构端基础数据模型(9 表 + 多租户/软删清单)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-10-14 12:36:43 +08:00

151 lines
4.9 KiB
SQL

-- CreateTable
CREATE TABLE `sys_agency` (
`code` VARCHAR(64) NOT NULL,
`org_name` VARCHAR(100) NOT NULL,
`org_type` VARCHAR(20) NOT NULL,
`credit_code` VARCHAR(18) NOT NULL,
`loc_code` VARCHAR(12) NOT NULL,
`loc_name` VARCHAR(50) NOT NULL,
`svc_source` VARCHAR(10) NOT NULL,
`license_no` VARCHAR(50) NULL,
`address` VARCHAR(200) NOT NULL,
`contact_name` VARCHAR(30) NOT NULL,
`contact_phone` VARCHAR(15) NOT NULL,
`bed_count` INTEGER NULL,
`sign_date` DATE NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
PRIMARY KEY (`code`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_staff` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`user_id` VARCHAR(36) NULL,
`name` VARCHAR(30) NOT NULL,
`id_card_no` VARCHAR(255) NOT NULL,
`person_code` VARCHAR(20) NULL,
`phone` VARCHAR(15) NOT NULL,
`job_type` VARCHAR(20) NOT NULL,
`work_type` VARCHAR(10) NOT NULL,
`entry_date` DATE NULL,
`leave_date` DATE NULL,
`employ_status` VARCHAR(10) NOT NULL,
`cert_type` VARCHAR(20) NULL,
`cert_no` VARCHAR(50) NULL,
`cert_level` VARCHAR(20) NULL,
`cert_expire` DATE NULL,
`cert_status` VARCHAR(20) NULL,
`cert_verify_url` VARCHAR(200) NULL,
`group_leader_id` VARCHAR(36) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
UNIQUE INDEX `sys_staff_user_id_key`(`user_id`),
INDEX `sys_staff_tenant_code_name_idx`(`tenant_code`, `name`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_svc_national` (
`id` VARCHAR(36) NOT NULL,
`nat_code` VARCHAR(20) NOT NULL,
`nat_name` VARCHAR(100) NOT NULL,
`nat_category` VARCHAR(20) NOT NULL,
`nat_sub_category` VARCHAR(50) NULL,
`recommend_staff` VARCHAR(50) NULL,
`recommend_duration` VARCHAR(50) NULL,
`is_medical` BOOLEAN NOT NULL DEFAULT false,
`version` INTEGER NOT NULL DEFAULT 1,
UNIQUE INDEX `sys_svc_national_nat_code_key`(`nat_code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_svc_local` (
`id` VARCHAR(36) NOT NULL,
`loc_code` VARCHAR(12) NOT NULL,
`local_item_name` VARCHAR(100) NOT NULL,
`local_category` VARCHAR(20) NULL,
`svc_time` VARCHAR(50) NULL,
`min_freq` VARCHAR(50) NULL,
`staff_qual` VARCHAR(50) NULL,
`is_medical` BOOLEAN NOT NULL DEFAULT false,
`source_doc` VARCHAR(200) NULL,
`map_status` VARCHAR(20) NOT NULL DEFAULT 'mapped',
INDEX `sys_svc_local_loc_code_idx`(`loc_code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_svc_mapping` (
`id` VARCHAR(36) NOT NULL,
`loc_id` VARCHAR(36) NOT NULL,
`nat_id` VARCHAR(36) NULL,
`map_type` VARCHAR(20) NOT NULL,
`map_note` VARCHAR(200) NULL,
`status` VARCHAR(20) NOT NULL DEFAULT 'confirmed',
INDEX `sys_svc_mapping_loc_id_idx`(`loc_id`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_svc_org` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`src_type` VARCHAR(10) NOT NULL,
`src_id` VARCHAR(36) NOT NULL,
`is_enabled` BOOLEAN NOT NULL DEFAULT true,
`price` VARCHAR(50) NULL,
`price_effective` DATETIME(3) NULL,
`is_new_national` BOOLEAN NOT NULL DEFAULT false,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_svc_org_tenant_code_src_type_idx`(`tenant_code`, `src_type`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_dict_abnormal_type` (
`id` VARCHAR(36) NOT NULL,
`code` VARCHAR(50) NOT NULL,
`name` VARCHAR(50) NOT NULL,
`sort` INTEGER NOT NULL DEFAULT 0,
UNIQUE INDEX `sys_dict_abnormal_type_code_key`(`code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_dict_photo_tier` (
`id` VARCHAR(36) NOT NULL,
`code` VARCHAR(20) NOT NULL,
`name` VARCHAR(50) NOT NULL,
`tier` VARCHAR(10) NOT NULL,
UNIQUE INDEX `sys_dict_photo_tier_code_key`(`code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- CreateTable
CREATE TABLE `sys_loc_config` (
`loc_code` VARCHAR(12) NOT NULL,
`loc_name` VARCHAR(50) NOT NULL,
`svc_source` VARCHAR(10) NOT NULL,
`item_count_rule` VARCHAR(100) NULL,
PRIMARY KEY (`loc_code`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;