103 lines
3.8 KiB
SQL
103 lines
3.8 KiB
SQL
-- 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;
|