diff --git a/prisma/migrations/0_baseline/migration.sql b/prisma/migrations/0_baseline/migration.sql new file mode 100644 index 0000000..29beeac --- /dev/null +++ b/prisma/migrations/0_baseline/migration.sql @@ -0,0 +1,759 @@ +-- CreateTable +CREATE TABLE `sys_tenant` ( + `id` VARCHAR(36) NOT NULL, + `code` VARCHAR(64) NOT NULL, + `name` VARCHAR(128) NOT NULL, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `remark` VARCHAR(255) NULL, + `brand_name` VARCHAR(64) NULL, + `logo_url` VARCHAR(255) NULL, + `theme_color` VARCHAR(16) NULL, + `copyright` VARCHAR(255) NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `created_by` VARCHAR(36) NULL, + `updated_at` DATETIME(3) NOT NULL, + + UNIQUE INDEX `sys_tenant_code_key`(`code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_user` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `username` VARCHAR(64) NOT NULL, + `password_hash` VARCHAR(255) NOT NULL, + `nickname` VARCHAR(64) NULL, + `email` VARCHAR(128) NULL, + `phone` VARCHAR(32) NULL, + `avatar` VARCHAR(255) NULL, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `token_version` INTEGER NOT NULL DEFAULT 0, + `locked_at` DATETIME(3) NULL, + `lock_reason` VARCHAR(255) NULL, + `must_change_password` BOOLEAN NOT NULL DEFAULT false, + `org_code` VARCHAR(64) 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, + + INDEX `sys_user_tenant_code_idx`(`tenant_code`), + INDEX `sys_user_org_code_idx`(`org_code`), + UNIQUE INDEX `sys_user_tenant_code_username_key`(`tenant_code`, `username`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_role` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `code` VARCHAR(64) NOT NULL, + `name` VARCHAR(64) NOT NULL, + `data_scope` VARCHAR(16) NOT NULL DEFAULT 'all', + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `remark` VARCHAR(255) 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, + + INDEX `sys_role_tenant_code_idx`(`tenant_code`), + UNIQUE INDEX `sys_role_tenant_code_code_key`(`tenant_code`, `code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_resource` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `parent_code` VARCHAR(64) NULL, + `type` VARCHAR(16) NOT NULL, + `code` VARCHAR(128) NOT NULL, + `name` VARCHAR(64) NOT NULL, + `path` VARCHAR(255) NULL, + `component` VARCHAR(255) NULL, + `method` VARCHAR(8) NULL, + `api_path` VARCHAR(255) NULL, + `icon` VARCHAR(64) NULL, + `sort` INTEGER NOT NULL DEFAULT 0, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `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_resource_tenant_code_idx`(`tenant_code`), + INDEX `sys_resource_parent_code_idx`(`parent_code`), + UNIQUE INDEX `sys_resource_tenant_code_code_key`(`tenant_code`, `code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_org` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `parent_code` VARCHAR(64) NULL, + `code` VARCHAR(64) NOT NULL, + `name` VARCHAR(64) NOT NULL, + `leader` VARCHAR(64) NULL, + `sort` INTEGER NOT NULL DEFAULT 0, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `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_org_tenant_code_idx`(`tenant_code`), + INDEX `sys_org_parent_code_idx`(`parent_code`), + UNIQUE INDEX `sys_org_tenant_code_code_key`(`tenant_code`, `code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_dict_type` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `code` VARCHAR(64) NOT NULL, + `name` VARCHAR(64) NOT NULL, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `built_in` BOOLEAN NOT NULL DEFAULT false, + `remark` VARCHAR(255) 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, + + INDEX `sys_dict_type_tenant_code_idx`(`tenant_code`), + UNIQUE INDEX `sys_dict_type_tenant_code_code_key`(`tenant_code`, `code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_dict_item` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `dict_type_code` VARCHAR(64) NOT NULL, + `label` VARCHAR(64) NOT NULL, + `value` VARCHAR(64) NOT NULL, + `sort` INTEGER NOT NULL DEFAULT 0, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `built_in` BOOLEAN NOT NULL DEFAULT false, + `color_type` VARCHAR(16) 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, + + INDEX `sys_dict_item_tenant_code_dict_type_code_idx`(`tenant_code`, `dict_type_code`), + UNIQUE INDEX `sys_dict_item_tenant_code_dict_type_code_value_key`(`tenant_code`, `dict_type_code`, `value`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_config` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `key` VARCHAR(128) NOT NULL, + `value` TEXT NULL, + `remark` VARCHAR(255) 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_config_tenant_code_key_key`(`tenant_code`, `key`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_audit_log` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `user_id` VARCHAR(36) NULL, + `username` VARCHAR(64) NULL, + `module` VARCHAR(64) NULL, + `action` VARCHAR(64) NULL, + `method` VARCHAR(8) NULL, + `path` VARCHAR(255) NULL, + `params` TEXT NULL, + `result` TEXT NULL, + `status` VARCHAR(16) NULL, + `error_message` TEXT NULL, + `ip` VARCHAR(64) NULL, + `user_agent` VARCHAR(255) NULL, + `duration_ms` INTEGER NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX `sys_audit_log_tenant_code_created_at_idx`(`tenant_code`, `created_at`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_login_log` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `username` VARCHAR(64) NULL, + `ip` VARCHAR(64) NULL, + `user_agent` VARCHAR(255) NULL, + `status` VARCHAR(16) NOT NULL DEFAULT 'success', + `message` VARCHAR(255) NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX `sys_login_log_tenant_code_created_at_idx`(`tenant_code`, `created_at`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_refresh_token` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `user_id` VARCHAR(36) NOT NULL, + `sid` VARCHAR(36) NULL, + `jti` VARCHAR(64) NOT NULL, + `token_hash` VARCHAR(255) NOT NULL, + `ip` VARCHAR(64) NULL, + `user_agent` VARCHAR(255) NULL, + `login_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `expire_at` DATETIME(3) NOT NULL, + `revoked_at` DATETIME(3) NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + UNIQUE INDEX `sys_refresh_token_jti_key`(`jti`), + INDEX `sys_refresh_token_tenant_code_user_id_idx`(`tenant_code`, `user_id`), + INDEX `sys_refresh_token_sid_idx`(`sid`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_notice` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `title` VARCHAR(128) NOT NULL, + `content` TEXT NOT NULL, + `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', + `created_by` VARCHAR(36) NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `updated_at` DATETIME(3) NOT NULL, + `deleted_at` DATETIME(3) NULL, + + INDEX `sys_notice_tenant_code_idx`(`tenant_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_notice_read` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `notice_id` VARCHAR(36) NOT NULL, + `user_id` VARCHAR(36) NOT NULL, + `read_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX `sys_notice_read_tenant_code_user_id_idx`(`tenant_code`, `user_id`), + UNIQUE INDEX `sys_notice_read_tenant_code_notice_id_user_id_key`(`tenant_code`, `notice_id`, `user_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_user_role` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `user_id` VARCHAR(36) NOT NULL, + `role_code` VARCHAR(64) NOT NULL, + + INDEX `sys_user_role_tenant_code_user_id_idx`(`tenant_code`, `user_id`), + UNIQUE INDEX `sys_user_role_tenant_code_user_id_role_code_key`(`tenant_code`, `user_id`, `role_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_role_resource` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `role_code` VARCHAR(64) NOT NULL, + `resource_code` VARCHAR(128) NOT NULL, + + INDEX `sys_role_resource_tenant_code_role_code_idx`(`tenant_code`, `role_code`), + UNIQUE INDEX `sys_role_resource_tenant_code_role_code_resource_code_key`(`tenant_code`, `role_code`, `resource_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `sys_role_org` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `role_code` VARCHAR(64) NOT NULL, + `org_code` VARCHAR(64) NOT NULL, + + UNIQUE INDEX `sys_role_org_tenant_code_role_code_org_code_key`(`tenant_code`, `role_code`, `org_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ltc_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, + `qc_threshold` INTEGER NOT NULL DEFAULT 24, + `docking_tier` VARCHAR(10) NOT NULL DEFAULT 'B', + `new_national_notify` BOOLEAN NOT NULL DEFAULT true, + + PRIMARY KEY (`code`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ltc_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 `ltc_staff_user_id_key`(`user_id`), + INDEX `ltc_staff_tenant_code_name_idx`(`tenant_code`, `name`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `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 `svc_national_nat_code_key`(`nat_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `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 `svc_local_loc_code_idx`(`loc_code`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `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 `svc_mapping_loc_id_idx`(`loc_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `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, + `photo_tier` VARCHAR(10) NOT NULL DEFAULT 'free', + `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 `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 `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; + +-- CreateTable +CREATE TABLE `ltc_elder` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `loc_code` VARCHAR(12) NOT NULL, + `prev_loc_code` VARCHAR(12) NULL, + `transfer_confirm_at` DATETIME(3) NULL, + `name` VARCHAR(30) NOT NULL, + `gender` CHAR(1) NOT NULL, + `birth_date` DATE NOT NULL, + `id_card_no` VARCHAR(255) NOT NULL, + `phone` VARCHAR(15) NULL, + `address` VARCHAR(200) NOT NULL, + `guardian_name` VARCHAR(30) NULL, + `guardian_phone` VARCHAR(15) NULL, + `insur_no` VARCHAR(30) NOT NULL, + `insur_type` VARCHAR(10) NOT NULL, + `insur_years` INTEGER NULL, + `insur_verify_status` VARCHAR(20) NULL, + `insur_verify_date` DATE NULL, + `assess_level` VARCHAR(20) NULL, + `care_level` VARCHAR(20) NULL, + `assess_date` DATE NULL, + `assess_org` VARCHAR(100) NULL, + `assess_evidence_file` VARCHAR(255) NULL, + `benefit_start` DATE NULL, + `benefit_end` DATE NULL, + `treat_status` VARCHAR(20) NOT NULL DEFAULT 'pending_file', + `status_source` VARCHAR(10) NOT NULL DEFAULT 'manual', + `status_change_date` DATE NULL, + `hosp_start` DATE NULL, + `hosp_end` DATE NULL, + `photo_tier_override` JSON NULL, + `need_assess` JSON NULL, + `note` TEXT NULL, + `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', + `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 `ltc_elder_tenant_code_name_idx`(`tenant_code`, `name`), + UNIQUE INDEX `ltc_elder_tenant_code_id_card_no_key`(`tenant_code`, `id_card_no`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ltc_elder_status_log` ( + `id` VARCHAR(36) NOT NULL, + `elder_id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `from_status` VARCHAR(20) NOT NULL, + `to_status` VARCHAR(20) NOT NULL, + `change_reason` VARCHAR(200) NOT NULL, + `source` VARCHAR(10) NOT NULL DEFAULT 'manual', + `operator_id` VARCHAR(36) NOT NULL, + `evidence_file` VARCHAR(255) NULL, + `changed_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX `ltc_elder_status_log_elder_id_idx`(`elder_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `svc_plan` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `elder_id` VARCHAR(36) NOT NULL, + `plan_period_start` DATE NOT NULL, + `plan_period_end` DATE NOT NULL, + `care_level` VARCHAR(20) NOT NULL, + `care_mode` VARCHAR(20) NOT NULL, + `item_count` INTEGER NOT NULL DEFAULT 0, + `item_count_rule` VARCHAR(100) NULL, + `extra_item_count` INTEGER NOT NULL DEFAULT 0, + `week_freq` INTEGER NULL, + `month_hours` INTEGER NULL, + `plan_status` VARCHAR(20) NOT NULL DEFAULT 'draft', + `confirm_elder` BOOLEAN NOT NULL DEFAULT false, + `confirm_guardian` BOOLEAN NOT NULL DEFAULT false, + `confirm_time` DATETIME(3) NULL, + `plan_basis` JSON NULL, + `change_from_plan_id` VARCHAR(36) NULL, + `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', + `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 `svc_plan_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `svc_plan_item` ( + `id` VARCHAR(36) NOT NULL, + `plan_id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `svc_id` VARCHAR(36) NOT NULL, + `svc_name_snapshot` VARCHAR(100) NOT NULL, + `svc_code_snapshot` VARCHAR(20) NULL, + `freq_type` VARCHAR(20) NULL, + `freq_value` INTEGER NULL, + `duration_min` INTEGER NULL, + `photo_tier` VARCHAR(10) NOT NULL DEFAULT 'free', + `caution_note` TEXT NULL, + `is_medical` BOOLEAN NOT NULL DEFAULT false, + `need_cert` BOOLEAN NOT NULL DEFAULT false, + + INDEX `svc_plan_item_plan_id_idx`(`plan_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `svc_order` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `elder_id` VARCHAR(36) NOT NULL, + `plan_id` VARCHAR(36) NOT NULL, + `service_date` DATE NOT NULL, + `time_slot_start` DATETIME(3) NOT NULL, + `time_slot_end` DATETIME(3) NOT NULL, + `assignee_id` VARCHAR(36) NULL, + `assign_time` DATETIME(3) NULL, + `assign_mode` VARCHAR(20) NULL, + `order_status` VARCHAR(20) NOT NULL DEFAULT 'to_assign', + `item_list` JSON NOT NULL, + `need_photo` BOOLEAN NOT NULL DEFAULT false, + `cancel_reason` VARCHAR(200) NULL, + `reschedule_log` JSON NULL, + `qualification_check` VARCHAR(20) NULL, + `billable` BOOLEAN NOT NULL DEFAULT true, + `price_snapshot` JSON NULL, + `settle_period` VARCHAR(20) NULL, + `not_met_reason` VARCHAR(50) NULL, + `not_met_at` DATETIME(3) NULL, + `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', + `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 `svc_order_tenant_code_assignee_id_service_date_idx`(`tenant_code`, `assignee_id`, `service_date`), + INDEX `svc_order_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ltc_elder_svc` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `elder_id` VARCHAR(36) NOT NULL, + `svc_id` VARCHAR(36) NOT NULL, + `svc_name_snapshot` VARCHAR(100) NOT NULL, + `svc_code_snapshot` VARCHAR(20) NULL, + `care_mode` VARCHAR(20) NOT NULL, + `is_active` BOOLEAN NOT NULL DEFAULT true, + `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 `ltc_elder_svc_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ho_record` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `order_id` VARCHAR(36) NOT NULL, + `elder_id` VARCHAR(36) NOT NULL, + `assignee_id` VARCHAR(36) NOT NULL, + `checkin_time` DATETIME(3) NULL, + `checkout_time` DATETIME(3) NULL, + `duration_min` INTEGER NULL, + `checkin_lat` DECIMAL(10, 6) NULL, + `checkin_lng` DECIMAL(10, 6) NULL, + `locate_status` VARCHAR(20) NOT NULL DEFAULT 'ok', + `record_status` VARCHAR(20) NOT NULL DEFAULT 'serving', + `voice_file` VARCHAR(200) NULL, + `offline_flag` BOOLEAN NOT NULL DEFAULT false, + `client_md5` VARCHAR(32) NULL, + `submit_time` DATETIME(3) NULL, + `actual_duration_tier` VARCHAR(10) NULL, + `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', + `is_prepaid` BOOLEAN NOT NULL DEFAULT false, + `billable` BOOLEAN NOT NULL DEFAULT true, + `source_prepaid_of` 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, + + INDEX `ho_record_tenant_code_order_id_idx`(`tenant_code`, `order_id`), + INDEX `ho_record_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), + INDEX `ho_record_tenant_code_assignee_id_checkin_time_idx`(`tenant_code`, `assignee_id`, `checkin_time`), + UNIQUE INDEX `ho_record_tenant_code_client_md5_key`(`tenant_code`, `client_md5`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ho_record_item` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `record_id` VARCHAR(36) NOT NULL, + `svc_id` VARCHAR(36) NOT NULL, + `svc_name_snapshot` VARCHAR(100) NOT NULL, + `exec_result` VARCHAR(20) NOT NULL, + `undo_reason` VARCHAR(200) NULL, + `extra_flag` BOOLEAN NOT NULL DEFAULT false, + `photo_required` BOOLEAN NOT NULL DEFAULT false, + `is_refused_photo` BOOLEAN NOT NULL DEFAULT false, + `refuse_reason` VARCHAR(200) NULL, + + INDEX `ho_record_item_record_id_idx`(`record_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ho_record_photo` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `record_id` VARCHAR(36) NOT NULL, + `svc_id` VARCHAR(36) NULL, + `file_path` VARCHAR(255) NOT NULL, + `file_size` INTEGER NOT NULL, + `visible_to_family` BOOLEAN NOT NULL DEFAULT false, + `upload_batch` VARCHAR(36) NULL, + `keep_until` DATETIME(3) NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX `ho_record_photo_record_id_idx`(`record_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ho_record_abnormal` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `record_id` VARCHAR(36) NULL, + `order_id` VARCHAR(36) NULL, + `elder_id` VARCHAR(36) NOT NULL, + `reporter_id` VARCHAR(36) NOT NULL, + `abnormal_type` VARCHAR(20) NOT NULL, + `abnormal_desc` TEXT NULL, + `voice_file` VARCHAR(200) NULL, + `has_photo` BOOLEAN NOT NULL DEFAULT false, + `visit_time` DATETIME(3) NULL, + `visit_lat` DECIMAL(10, 6) NULL, + `visit_lng` DECIMAL(10, 6) NULL, + `notify_status` VARCHAR(20) NOT NULL DEFAULT 'pending', + `handle_status` VARCHAR(20) NOT NULL DEFAULT 'open', + `handle_result` VARCHAR(200) NULL, + `link_plan_change` BOOLEAN NOT NULL DEFAULT false, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `created_by` VARCHAR(36) NULL, + + INDEX `ho_record_abnormal_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), + INDEX `ho_record_abnormal_tenant_code_notify_status_idx`(`tenant_code`, `notify_status`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `settlement` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `settle_period` VARCHAR(20) NOT NULL, + `amount_total` DECIMAL(12, 2) NULL, + `amount_passed` DECIMAL(12, 2) NULL, + `amount_rejected` DECIMAL(12, 2) NULL, + `amount_fund` DECIMAL(12, 2) NULL, + `amount_self_pay` DECIMAL(12, 2) NULL, + `submit_date` DATE NULL, + `pay_date` DATE NULL, + `exception_reason` VARCHAR(200) NULL, + `handle_deadline` DATE NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `report` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `record_id` VARCHAR(36) NOT NULL, + `order_id` VARCHAR(36) NOT NULL, + `report_status` VARCHAR(20) NOT NULL DEFAULT 'pending', + `report_time` DATETIME(3) NULL, + `official_no` VARCHAR(50) NULL, + `loc_code` VARCHAR(12) NOT NULL, + `nat_code_snapshot` JSON NULL, + `adapter_result` VARCHAR(200) NULL, + `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `qc` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `record_id` VARCHAR(36) NOT NULL, + `qc_type` VARCHAR(20) NOT NULL DEFAULT 'normal', + `qc_result` VARCHAR(20) NOT NULL DEFAULT 'pending', + `qc_note` VARCHAR(200) NULL, + `qc_staff_id` VARCHAR(36) NULL, + `qc_time` DATETIME(3) NULL, + `pass_time` DATETIME(3) NULL, + `first_qc_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, + + INDEX `qc_tenant_code_record_id_idx`(`tenant_code`, `record_id`), + INDEX `qc_tenant_code_qc_result_idx`(`tenant_code`, `qc_result`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +-- CreateTable +CREATE TABLE `ho_record_correction` ( + `id` VARCHAR(36) NOT NULL, + `tenant_code` VARCHAR(64) NOT NULL, + `record_id` VARCHAR(36) NOT NULL, + `qc_id` VARCHAR(36) NULL, + `correction_note` VARCHAR(200) NOT NULL, + `corrected_by` VARCHAR(36) NOT NULL, + `corrected_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + + INDEX `ho_record_correction_record_id_idx`(`record_id`), + PRIMARY KEY (`id`) +) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + diff --git a/prisma/migrations/20261010073709_init/migration.sql b/prisma/migrations/20261010073709_init/migration.sql deleted file mode 100644 index f8fa77d..0000000 --- a/prisma/migrations/20261010073709_init/migration.sql +++ /dev/null @@ -1,247 +0,0 @@ --- CreateTable -CREATE TABLE `sys_tenant` ( - `id` VARCHAR(36) NOT NULL, - `code` VARCHAR(64) NOT NULL, - `name` VARCHAR(128) NOT NULL, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `remark` VARCHAR(255) NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - `created_by` VARCHAR(36) NULL, - `updated_at` DATETIME(3) NOT NULL, - - UNIQUE INDEX `sys_tenant_code_key`(`code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_user` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `username` VARCHAR(64) NOT NULL, - `password_hash` VARCHAR(255) NOT NULL, - `nickname` VARCHAR(64) NULL, - `email` VARCHAR(128) NULL, - `phone` VARCHAR(32) NULL, - `avatar` VARCHAR(255) NULL, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `org_code` VARCHAR(64) 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, - - INDEX `sys_user_tenant_code_idx`(`tenant_code`), - INDEX `sys_user_org_code_idx`(`org_code`), - UNIQUE INDEX `sys_user_tenant_code_username_key`(`tenant_code`, `username`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_role` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `code` VARCHAR(64) NOT NULL, - `name` VARCHAR(64) NOT NULL, - `data_scope` VARCHAR(16) NOT NULL DEFAULT 'all', - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `remark` VARCHAR(255) 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, - - INDEX `sys_role_tenant_code_idx`(`tenant_code`), - UNIQUE INDEX `sys_role_tenant_code_code_key`(`tenant_code`, `code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_resource` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `parent_code` VARCHAR(64) NULL, - `type` VARCHAR(16) NOT NULL, - `code` VARCHAR(128) NOT NULL, - `name` VARCHAR(64) NOT NULL, - `path` VARCHAR(255) NULL, - `component` VARCHAR(255) NULL, - `method` VARCHAR(8) NULL, - `api_path` VARCHAR(255) NULL, - `icon` VARCHAR(64) NULL, - `sort` INTEGER NOT NULL DEFAULT 0, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `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_resource_tenant_code_idx`(`tenant_code`), - INDEX `sys_resource_parent_code_idx`(`parent_code`), - UNIQUE INDEX `sys_resource_tenant_code_code_key`(`tenant_code`, `code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_org` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `parent_code` VARCHAR(64) NULL, - `code` VARCHAR(64) NOT NULL, - `name` VARCHAR(64) NOT NULL, - `leader` VARCHAR(64) NULL, - `sort` INTEGER NOT NULL DEFAULT 0, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `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_org_tenant_code_idx`(`tenant_code`), - INDEX `sys_org_parent_code_idx`(`parent_code`), - UNIQUE INDEX `sys_org_tenant_code_code_key`(`tenant_code`, `code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_dict_type` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `code` VARCHAR(64) NOT NULL, - `name` VARCHAR(64) NOT NULL, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `remark` VARCHAR(255) 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, - - INDEX `sys_dict_type_tenant_code_idx`(`tenant_code`), - UNIQUE INDEX `sys_dict_type_tenant_code_code_key`(`tenant_code`, `code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_dict_item` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `dict_type_code` VARCHAR(64) NOT NULL, - `label` VARCHAR(64) NOT NULL, - `value` VARCHAR(64) NOT NULL, - `sort` INTEGER NOT NULL DEFAULT 0, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `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_dict_item_tenant_code_dict_type_code_idx`(`tenant_code`, `dict_type_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_config` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `key` VARCHAR(128) NOT NULL, - `value` TEXT NULL, - `remark` VARCHAR(255) 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_config_tenant_code_key_key`(`tenant_code`, `key`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_audit_log` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `user_id` VARCHAR(36) NULL, - `username` VARCHAR(64) NULL, - `module` VARCHAR(64) NULL, - `action` VARCHAR(64) NULL, - `method` VARCHAR(8) NULL, - `path` VARCHAR(255) NULL, - `params` TEXT NULL, - `result` TEXT NULL, - `status` VARCHAR(16) NULL, - `error_message` TEXT NULL, - `ip` VARCHAR(64) NULL, - `user_agent` VARCHAR(255) NULL, - `duration_ms` INTEGER NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - INDEX `sys_audit_log_tenant_code_created_at_idx`(`tenant_code`, `created_at`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_login_log` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `username` VARCHAR(64) NULL, - `ip` VARCHAR(64) NULL, - `user_agent` VARCHAR(255) NULL, - `status` VARCHAR(16) NOT NULL DEFAULT 'success', - `message` VARCHAR(255) NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - INDEX `sys_login_log_tenant_code_created_at_idx`(`tenant_code`, `created_at`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_refresh_token` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `user_id` VARCHAR(36) NOT NULL, - `jti` VARCHAR(64) NOT NULL, - `token_hash` VARCHAR(255) NOT NULL, - `ip` VARCHAR(64) NULL, - `user_agent` VARCHAR(255) NULL, - `login_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - `expire_at` DATETIME(3) NOT NULL, - `revoked_at` DATETIME(3) NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - UNIQUE INDEX `sys_refresh_token_jti_key`(`jti`), - INDEX `sys_refresh_token_tenant_code_user_id_idx`(`tenant_code`, `user_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_user_role` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `user_id` VARCHAR(36) NOT NULL, - `role_code` VARCHAR(64) NOT NULL, - - INDEX `sys_user_role_tenant_code_user_id_idx`(`tenant_code`, `user_id`), - UNIQUE INDEX `sys_user_role_tenant_code_user_id_role_code_key`(`tenant_code`, `user_id`, `role_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_role_resource` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `role_code` VARCHAR(64) NOT NULL, - `resource_code` VARCHAR(128) NOT NULL, - - INDEX `sys_role_resource_tenant_code_role_code_idx`(`tenant_code`, `role_code`), - UNIQUE INDEX `sys_role_resource_tenant_code_role_code_resource_code_key`(`tenant_code`, `role_code`, `resource_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_role_org` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `role_code` VARCHAR(64) NOT NULL, - `org_code` VARCHAR(64) NOT NULL, - - UNIQUE INDEX `sys_role_org_tenant_code_role_code_org_code_key`(`tenant_code`, `role_code`, `org_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/prisma/migrations/20261011132906_session_and_lock/migration.sql b/prisma/migrations/20261011132906_session_and_lock/migration.sql deleted file mode 100644 index 5e67b86..0000000 --- a/prisma/migrations/20261011132906_session_and_lock/migration.sql +++ /dev/null @@ -1,9 +0,0 @@ --- AlterTable -ALTER TABLE `sys_refresh_token` ADD COLUMN `sid` VARCHAR(36) NULL; - --- AlterTable -ALTER TABLE `sys_user` ADD COLUMN `lock_reason` VARCHAR(255) NULL, - ADD COLUMN `locked_at` DATETIME(3) NULL; - --- CreateIndex -CREATE INDEX `sys_refresh_token_sid_idx` ON `sys_refresh_token`(`sid`); diff --git a/prisma/migrations/20261011134951_force_password_change/migration.sql b/prisma/migrations/20261011134951_force_password_change/migration.sql deleted file mode 100644 index e98a98e..0000000 --- a/prisma/migrations/20261011134951_force_password_change/migration.sql +++ /dev/null @@ -1,2 +0,0 @@ --- AlterTable -ALTER TABLE `sys_user` ADD COLUMN `must_change_password` BOOLEAN NOT NULL DEFAULT false; diff --git a/prisma/migrations/20261011141231_dict_builtin_color/migration.sql b/prisma/migrations/20261011141231_dict_builtin_color/migration.sql deleted file mode 100644 index 65ca5ee..0000000 --- a/prisma/migrations/20261011141231_dict_builtin_color/migration.sql +++ /dev/null @@ -1,9 +0,0 @@ --- AlterTable -ALTER TABLE `sys_dict_item` ADD COLUMN `built_in` BOOLEAN NOT NULL DEFAULT false, - ADD COLUMN `color_type` VARCHAR(16) NULL; - --- AlterTable -ALTER TABLE `sys_dict_type` ADD COLUMN `built_in` BOOLEAN NOT NULL DEFAULT false; - --- CreateIndex -CREATE UNIQUE INDEX `sys_dict_item_tenant_code_dict_type_code_value_key` ON `sys_dict_item`(`tenant_code`, `dict_type_code`, `value`); diff --git a/prisma/migrations/20261011142232_notice/migration.sql b/prisma/migrations/20261011142232_notice/migration.sql deleted file mode 100644 index 91c2c58..0000000 --- a/prisma/migrations/20261011142232_notice/migration.sql +++ /dev/null @@ -1,28 +0,0 @@ --- CreateTable -CREATE TABLE `sys_notice` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `title` VARCHAR(128) NOT NULL, - `content` TEXT NOT NULL, - `status` VARCHAR(16) NOT NULL DEFAULT 'enabled', - `created_by` VARCHAR(36) NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - `updated_at` DATETIME(3) NOT NULL, - `deleted_at` DATETIME(3) NULL, - - INDEX `sys_notice_tenant_code_idx`(`tenant_code`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - --- CreateTable -CREATE TABLE `sys_notice_read` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `notice_id` VARCHAR(36) NOT NULL, - `user_id` VARCHAR(36) NOT NULL, - `read_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - INDEX `sys_notice_read_tenant_code_user_id_idx`(`tenant_code`, `user_id`), - UNIQUE INDEX `sys_notice_read_tenant_code_notice_id_user_id_key`(`tenant_code`, `notice_id`, `user_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; diff --git a/prisma/migrations/20261011142924_tenant_brand/migration.sql b/prisma/migrations/20261011142924_tenant_brand/migration.sql deleted file mode 100644 index b381ff9..0000000 --- a/prisma/migrations/20261011142924_tenant_brand/migration.sql +++ /dev/null @@ -1,5 +0,0 @@ --- AlterTable -ALTER TABLE `sys_tenant` ADD COLUMN `brand_name` VARCHAR(64) NULL, - ADD COLUMN `copyright` VARCHAR(255) NULL, - ADD COLUMN `logo_url` VARCHAR(255) NULL, - ADD COLUMN `theme_color` VARCHAR(16) NULL; diff --git a/prisma/migrations/20261011150000_user_token_version/migration.sql b/prisma/migrations/20261011150000_user_token_version/migration.sql deleted file mode 100644 index 97455c6..0000000 --- a/prisma/migrations/20261011150000_user_token_version/migration.sql +++ /dev/null @@ -1,2 +0,0 @@ --- AlterTable -ALTER TABLE `sys_user` ADD COLUMN `token_version` INT NOT NULL DEFAULT 0; diff --git a/prisma/migrations/20261014043411_c0_base/migration.sql b/prisma/migrations/20261014043411_c0_base/migration.sql deleted file mode 100644 index a3ab138..0000000 --- a/prisma/migrations/20261014043411_c0_base/migration.sql +++ /dev/null @@ -1,150 +0,0 @@ --- 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; diff --git a/prisma/migrations/20261014084652_c1_elder/migration.sql b/prisma/migrations/20261014084652_c1_elder/migration.sql deleted file mode 100644 index 85edd38..0000000 --- a/prisma/migrations/20261014084652_c1_elder/migration.sql +++ /dev/null @@ -1,80 +0,0 @@ --- CreateTable -CREATE TABLE `ltc_elder` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `loc_code` VARCHAR(12) NOT NULL, - `prev_loc_code` VARCHAR(12) NULL, - `transfer_confirm_at` DATETIME(3) NULL, - `name` VARCHAR(30) NOT NULL, - `gender` CHAR(1) NOT NULL, - `birth_date` DATE NOT NULL, - `id_card_no` VARCHAR(255) NOT NULL, - `phone` VARCHAR(15) NULL, - `address` VARCHAR(200) NOT NULL, - `guardian_name` VARCHAR(30) NULL, - `guardian_phone` VARCHAR(15) NULL, - `insur_no` VARCHAR(30) NOT NULL, - `insur_type` VARCHAR(10) NOT NULL, - `insur_years` INTEGER NULL, - `insur_verify_status` VARCHAR(20) NULL, - `insur_verify_date` DATE NULL, - `assess_level` VARCHAR(20) NULL, - `care_level` VARCHAR(20) NULL, - `assess_date` DATE NULL, - `assess_org` VARCHAR(100) NULL, - `assess_evidence_file` VARCHAR(255) NULL, - `benefit_start` DATE NULL, - `benefit_end` DATE NULL, - `treat_status` VARCHAR(20) NOT NULL DEFAULT 'pending_file', - `status_source` VARCHAR(10) NOT NULL DEFAULT 'manual', - `status_change_date` DATE NULL, - `hosp_start` DATE NULL, - `hosp_end` DATE NULL, - `photo_tier_override` JSON NULL, - `need_assess` JSON NULL, - `note` TEXT NULL, - `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', - `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 `ltc_elder_tenant_code_name_idx`(`tenant_code`, `name`), - UNIQUE INDEX `ltc_elder_tenant_code_id_card_no_key`(`tenant_code`, `id_card_no`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `ltc_elder_status_log` ( - `id` VARCHAR(36) NOT NULL, - `elder_id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `from_status` VARCHAR(20) NOT NULL, - `to_status` VARCHAR(20) NOT NULL, - `change_reason` VARCHAR(200) NOT NULL, - `source` VARCHAR(10) NOT NULL DEFAULT 'manual', - `operator_id` VARCHAR(36) NOT NULL, - `evidence_file` VARCHAR(255) NULL, - `changed_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - INDEX `ltc_elder_status_log_elder_id_idx`(`elder_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- RenameIndex -ALTER TABLE `ltc_staff` RENAME INDEX `sys_staff_tenant_code_name_idx` TO `ltc_staff_tenant_code_name_idx`; - --- RenameIndex -ALTER TABLE `ltc_staff` RENAME INDEX `sys_staff_user_id_key` TO `ltc_staff_user_id_key`; - --- RenameIndex -ALTER TABLE `svc_local` RENAME INDEX `sys_svc_local_loc_code_idx` TO `svc_local_loc_code_idx`; - --- RenameIndex -ALTER TABLE `svc_mapping` RENAME INDEX `sys_svc_mapping_loc_id_idx` TO `svc_mapping_loc_id_idx`; - --- RenameIndex -ALTER TABLE `svc_national` RENAME INDEX `sys_svc_national_nat_code_key` TO `svc_national_nat_code_key`; - --- RenameIndex -ALTER TABLE `svc_org` RENAME INDEX `sys_svc_org_tenant_code_src_type_idx` TO `svc_org_tenant_code_src_type_idx`; diff --git a/prisma/migrations/20261014100000_utf8mb4_general_ci/migration.sql b/prisma/migrations/20261014100000_utf8mb4_general_ci/migration.sql deleted file mode 100644 index 381494e..0000000 --- a/prisma/migrations/20261014100000_utf8mb4_general_ci/migration.sql +++ /dev/null @@ -1,17 +0,0 @@ --- 统一业务表字符集/排序规则为 utf8mb4_general_ci(项目要求) -ALTER TABLE `sys_audit_log` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_config` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_dict_item` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_dict_type` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_login_log` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_notice` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_notice_read` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_org` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_refresh_token` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_resource` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_role` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_role_org` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_role_resource` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_tenant` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_user` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -ALTER TABLE `sys_user_role` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; diff --git a/prisma/migrations/20261014150000_c0_rename_ltc/migration.sql b/prisma/migrations/20261014150000_c0_rename_ltc/migration.sql deleted file mode 100644 index ae9d29c..0000000 --- a/prisma/migrations/20261014150000_c0_rename_ltc/migration.sql +++ /dev/null @@ -1,12 +0,0 @@ --- 业务表重命名:去 sys_ 前缀,恢复业务领域语义命名 -ALTER TABLE `sys_agency` RENAME TO `ltc_agency`; -ALTER TABLE `sys_staff` RENAME TO `ltc_staff`; -ALTER TABLE `sys_svc_national` RENAME TO `svc_national`; -ALTER TABLE `sys_svc_local` RENAME TO `svc_local`; -ALTER TABLE `sys_svc_mapping` RENAME TO `svc_mapping`; -ALTER TABLE `sys_svc_org` RENAME TO `svc_org`; -ALTER TABLE `sys_loc_config` RENAME TO `loc_config`; - --- 业务字典改用脚手架 sys_dict_type / sys_dict_item(异常分类、拍照分档作为内置字典 seed) -DROP TABLE IF EXISTS `sys_dict_abnormal_type`; -DROP TABLE IF EXISTS `sys_dict_photo_tier`; diff --git a/prisma/migrations/20261014160000_c2_plan_order/migration.sql b/prisma/migrations/20261014160000_c2_plan_order/migration.sql deleted file mode 100644 index ae3b335..0000000 --- a/prisma/migrations/20261014160000_c2_plan_order/migration.sql +++ /dev/null @@ -1,102 +0,0 @@ --- CreateTable -CREATE TABLE `svc_plan` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `elder_id` VARCHAR(36) NOT NULL, - `plan_period_start` DATE NOT NULL, - `plan_period_end` DATE NOT NULL, - `care_level` VARCHAR(20) NOT NULL, - `care_mode` VARCHAR(20) NOT NULL, - `item_count` INTEGER NOT NULL DEFAULT 0, - `item_count_rule` VARCHAR(100) NULL, - `extra_item_count` INTEGER NOT NULL DEFAULT 0, - `week_freq` INTEGER NULL, - `month_hours` INTEGER NULL, - `plan_status` VARCHAR(20) NOT NULL DEFAULT 'draft', - `confirm_elder` BOOLEAN NOT NULL DEFAULT false, - `confirm_guardian` BOOLEAN NOT NULL DEFAULT false, - `confirm_time` DATETIME(3) NULL, - `plan_basis` JSON NULL, - `change_from_plan_id` VARCHAR(36) NULL, - `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', - `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 `svc_plan_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `svc_plan_item` ( - `id` VARCHAR(36) NOT NULL, - `plan_id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `svc_id` VARCHAR(36) NOT NULL, - `svc_name_snapshot` VARCHAR(100) NOT NULL, - `svc_code_snapshot` VARCHAR(20) NULL, - `freq_type` VARCHAR(20) NULL, - `freq_value` INTEGER NULL, - `duration_min` INTEGER NULL, - `photo_tier` VARCHAR(10) NOT NULL DEFAULT 'free', - `caution_note` TEXT NULL, - `is_medical` BOOLEAN NOT NULL DEFAULT false, - `need_cert` BOOLEAN NOT NULL DEFAULT false, - - INDEX `svc_plan_item_plan_id_idx`(`plan_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `svc_order` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `elder_id` VARCHAR(36) NOT NULL, - `plan_id` VARCHAR(36) NOT NULL, - `service_date` DATE NOT NULL, - `time_slot_start` DATETIME(3) NOT NULL, - `time_slot_end` DATETIME(3) NOT NULL, - `assignee_id` VARCHAR(36) NULL, - `assign_time` DATETIME(3) NULL, - `assign_mode` VARCHAR(20) NULL, - `order_status` VARCHAR(20) NOT NULL DEFAULT 'to_assign', - `item_list` JSON NOT NULL, - `need_photo` BOOLEAN NOT NULL DEFAULT false, - `cancel_reason` VARCHAR(200) NULL, - `reschedule_log` JSON NULL, - `qualification_check` VARCHAR(20) NULL, - `billable` BOOLEAN NOT NULL DEFAULT true, - `price_snapshot` JSON NULL, - `settle_period` VARCHAR(20) NULL, - `not_met_reason` VARCHAR(50) NULL, - `not_met_at` DATETIME(3) NULL, - `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', - `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 `svc_order_tenant_code_assignee_id_service_date_idx`(`tenant_code`, `assignee_id`, `service_date`), - INDEX `svc_order_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `ltc_elder_svc` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `elder_id` VARCHAR(36) NOT NULL, - `svc_id` VARCHAR(36) NOT NULL, - `svc_name_snapshot` VARCHAR(100) NOT NULL, - `svc_code_snapshot` VARCHAR(20) NULL, - `care_mode` VARCHAR(20) NOT NULL, - `is_active` BOOLEAN NOT NULL DEFAULT true, - `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 `ltc_elder_svc_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; diff --git a/prisma/migrations/20261015001939_c3_record/migration.sql b/prisma/migrations/20261015001939_c3_record/migration.sql deleted file mode 100644 index d8a40dc..0000000 --- a/prisma/migrations/20261015001939_c3_record/migration.sql +++ /dev/null @@ -1,133 +0,0 @@ --- CreateTable -CREATE TABLE `ho_record` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `order_id` VARCHAR(36) NOT NULL, - `elder_id` VARCHAR(36) NOT NULL, - `assignee_id` VARCHAR(36) NOT NULL, - `checkin_time` DATETIME(3) NULL, - `checkout_time` DATETIME(3) NULL, - `duration_min` INTEGER NULL, - `checkin_lat` DECIMAL(10, 6) NULL, - `checkin_lng` DECIMAL(10, 6) NULL, - `locate_status` VARCHAR(20) NOT NULL DEFAULT 'ok', - `record_status` VARCHAR(20) NOT NULL DEFAULT 'serving', - `voice_file` VARCHAR(200) NULL, - `offline_flag` BOOLEAN NOT NULL DEFAULT false, - `client_md5` VARCHAR(32) NULL, - `submit_time` DATETIME(3) NULL, - `actual_duration_tier` VARCHAR(10) NULL, - `biz_line` VARCHAR(20) NOT NULL DEFAULT 'ltci', - `is_prepaid` BOOLEAN NOT NULL DEFAULT false, - `billable` BOOLEAN NOT NULL DEFAULT true, - `source_prepaid_of` 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, - - INDEX `ho_record_tenant_code_order_id_idx`(`tenant_code`, `order_id`), - INDEX `ho_record_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), - INDEX `ho_record_tenant_code_assignee_id_checkin_time_idx`(`tenant_code`, `assignee_id`, `checkin_time`), - UNIQUE INDEX `ho_record_tenant_code_client_md5_key`(`tenant_code`, `client_md5`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `ho_record_item` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `record_id` VARCHAR(36) NOT NULL, - `svc_id` VARCHAR(36) NOT NULL, - `svc_name_snapshot` VARCHAR(100) NOT NULL, - `exec_result` VARCHAR(20) NOT NULL, - `undo_reason` VARCHAR(200) NULL, - `extra_flag` BOOLEAN NOT NULL DEFAULT false, - `photo_required` BOOLEAN NOT NULL DEFAULT false, - `is_refused_photo` BOOLEAN NOT NULL DEFAULT false, - `refuse_reason` VARCHAR(200) NULL, - - INDEX `ho_record_item_record_id_idx`(`record_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `ho_record_photo` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `record_id` VARCHAR(36) NOT NULL, - `svc_id` VARCHAR(36) NULL, - `file_path` VARCHAR(255) NOT NULL, - `file_size` INTEGER NOT NULL, - `visible_to_family` BOOLEAN NOT NULL DEFAULT false, - `upload_batch` VARCHAR(36) NULL, - `keep_until` DATETIME(3) NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - INDEX `ho_record_photo_record_id_idx`(`record_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `ho_record_abnormal` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `record_id` VARCHAR(36) NULL, - `order_id` VARCHAR(36) NULL, - `elder_id` VARCHAR(36) NOT NULL, - `reporter_id` VARCHAR(36) NOT NULL, - `abnormal_type` VARCHAR(20) NOT NULL, - `abnormal_desc` TEXT NULL, - `voice_file` VARCHAR(200) NULL, - `has_photo` BOOLEAN NOT NULL DEFAULT false, - `visit_time` DATETIME(3) NULL, - `visit_lat` DECIMAL(10, 6) NULL, - `visit_lng` DECIMAL(10, 6) NULL, - `notify_status` VARCHAR(20) NOT NULL DEFAULT 'pending', - `handle_status` VARCHAR(20) NOT NULL DEFAULT 'open', - `handle_result` VARCHAR(200) NULL, - `link_plan_change` BOOLEAN NOT NULL DEFAULT false, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - `created_by` VARCHAR(36) NULL, - - INDEX `ho_record_abnormal_tenant_code_elder_id_idx`(`tenant_code`, `elder_id`), - INDEX `ho_record_abnormal_tenant_code_notify_status_idx`(`tenant_code`, `notify_status`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `settlement` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `settle_period` VARCHAR(20) NOT NULL, - `amount_total` DECIMAL(12, 2) NULL, - `amount_passed` DECIMAL(12, 2) NULL, - `amount_rejected` DECIMAL(12, 2) NULL, - `amount_fund` DECIMAL(12, 2) NULL, - `amount_self_pay` DECIMAL(12, 2) NULL, - `submit_date` DATE NULL, - `pay_date` DATE NULL, - `exception_reason` VARCHAR(200) NULL, - `handle_deadline` DATE NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `report` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `record_id` VARCHAR(36) NOT NULL, - `order_id` VARCHAR(36) NOT NULL, - `report_status` VARCHAR(20) NOT NULL DEFAULT 'pending', - `report_time` DATETIME(3) NULL, - `official_no` VARCHAR(50) NULL, - `loc_code` VARCHAR(12) NOT NULL, - `nat_code_snapshot` JSON NULL, - `adapter_result` VARCHAR(200) NULL, - `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - diff --git a/prisma/migrations/20261015010000_c4_qc/migration.sql b/prisma/migrations/20261015010000_c4_qc/migration.sql deleted file mode 100644 index 977a2fa..0000000 --- a/prisma/migrations/20261015010000_c4_qc/migration.sql +++ /dev/null @@ -1,36 +0,0 @@ --- CreateTable -CREATE TABLE `qc` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `record_id` VARCHAR(36) NOT NULL, - `qc_type` VARCHAR(20) NOT NULL DEFAULT 'normal', - `qc_result` VARCHAR(20) NOT NULL DEFAULT 'pending', - `qc_note` VARCHAR(200) NULL, - `qc_staff_id` VARCHAR(36) NULL, - `qc_time` DATETIME(3) NULL, - `pass_time` DATETIME(3) NULL, - `first_qc_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, - - INDEX `qc_tenant_code_record_id_idx`(`tenant_code`, `record_id`), - INDEX `qc_tenant_code_qc_result_idx`(`tenant_code`, `qc_result`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- CreateTable -CREATE TABLE `ho_record_correction` ( - `id` VARCHAR(36) NOT NULL, - `tenant_code` VARCHAR(64) NOT NULL, - `record_id` VARCHAR(36) NOT NULL, - `qc_id` VARCHAR(36) NULL, - `correction_note` VARCHAR(200) NOT NULL, - `corrected_by` VARCHAR(36) NOT NULL, - `corrected_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), - - INDEX `ho_record_correction_record_id_idx`(`record_id`), - PRIMARY KEY (`id`) -) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - diff --git a/prisma/migrations/20261015020000_c5_config/migration.sql b/prisma/migrations/20261015020000_c5_config/migration.sql deleted file mode 100644 index d6fa1cc..0000000 --- a/prisma/migrations/20261015020000_c5_config/migration.sql +++ /dev/null @@ -1,7 +0,0 @@ --- AlterTable -ALTER TABLE `ltc_agency` ADD COLUMN `docking_tier` VARCHAR(10) NOT NULL DEFAULT 'B', - ADD COLUMN `new_national_notify` BOOLEAN NOT NULL DEFAULT true, - ADD COLUMN `qc_threshold` INTEGER NOT NULL DEFAULT 24; - --- AlterTable -ALTER TABLE `svc_org` ADD COLUMN `photo_tier` VARCHAR(10) NOT NULL DEFAULT 'free';