-- 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;