实现M002 V4持久化基线
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
CREATE TABLE workflow_reservation_v4_order_task (
|
||||
id BIGINT NOT NULL COMMENT 'V4 订单任务 ID',
|
||||
hotel_id VARCHAR(64) NOT NULL COMMENT '酒店 ID',
|
||||
source_message_id BIGINT NOT NULL COMMENT 'SourceMessage Inbox 内部 ID',
|
||||
ai_batch_id BIGINT NOT NULL COMMENT 'AI 回调批次 ID',
|
||||
order_ref VARCHAR(128) NOT NULL COMMENT 'V4 包内订单引用,同一 source_message_id 下用于聚合同一订单任务',
|
||||
order_context_index INT NOT NULL COMMENT 'order_contexts[] 中的一基序号,用于同一 SourceMessage 下稳定排序',
|
||||
order_id BIGINT NULL COMMENT '绑定的本地订单投影 ID,归属未解决时可为空',
|
||||
target_booking_type VARCHAR(32) NULL COMMENT '目标订单业务类型,例如 GROUP、FIT',
|
||||
target_locator_type VARCHAR(64) NULL COMMENT '目标订单定位类型,例如 GROUP_CODE、BOOKING_CODE、CONFIRMATION_NUMBER',
|
||||
target_locator_value VARCHAR(128) NULL COMMENT '目标订单定位值,未解决时为空',
|
||||
target_resolution_status VARCHAR(32) NOT NULL COMMENT '订单归属解析状态:RESOLVED、UNRESOLVED、CONFLICT',
|
||||
order_task_status VARCHAR(32) NOT NULL COMMENT '订单任务状态快照:OPEN、COMPLETED;阻塞状态由查询实时派生',
|
||||
source_received_at DATETIME(6) NOT NULL COMMENT '来源邮件接收 UTC 时间,用于排序',
|
||||
version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本',
|
||||
created_at DATETIME(6) NOT NULL COMMENT '记录创建 UTC 时间',
|
||||
updated_at DATETIME(6) NOT NULL COMMENT '记录更新 UTC 时间',
|
||||
logic_deleted_at DATETIME(6) NULL COMMENT '逻辑删除 UTC 时间,第一版不主动使用',
|
||||
logic_deleted_reason VARCHAR(512) NULL COMMENT '逻辑删除原因,第一版不主动使用',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_reservation_v4_order_task_source_ref (hotel_id, source_message_id, order_ref),
|
||||
UNIQUE KEY uk_reservation_v4_order_task_source_index (hotel_id, source_message_id, order_context_index),
|
||||
KEY idx_reservation_v4_order_task_order (hotel_id, order_id, source_received_at),
|
||||
KEY idx_reservation_v4_order_task_status (hotel_id, order_task_status, source_received_at),
|
||||
KEY idx_reservation_v4_order_task_source (hotel_id, source_message_id),
|
||||
KEY idx_reservation_v4_order_task_locator (hotel_id, target_locator_type, target_locator_value)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='Reservation V4 订单任务聚合表';
|
||||
|
||||
CREATE TABLE workflow_reservation_v4_task_card (
|
||||
id BIGINT NOT NULL COMMENT 'V4 任务卡 ID',
|
||||
hotel_id VARCHAR(64) NOT NULL COMMENT '酒店 ID',
|
||||
v4_order_task_id BIGINT NOT NULL COMMENT 'V4 订单任务 ID',
|
||||
source_message_id BIGINT NOT NULL COMMENT 'SourceMessage Inbox 内部 ID',
|
||||
ai_transition_id BIGINT NULL COMMENT 'AI transition ID,非 event 卡可为空',
|
||||
card_type VARCHAR(64) NOT NULL COMMENT '卡片类型,例如 SOURCE_MESSAGE_DISPLAY、BASIC_INFORMATION、ROOM_INFORMATION',
|
||||
event_type VARCHAR(64) NULL COMMENT '业务事件类型,非 event 卡为空',
|
||||
source_event_index INT NOT NULL DEFAULT 0 COMMENT 'message_events[] 中的一基序号;非 event 卡固定为 0',
|
||||
card_sort_order INT NOT NULL COMMENT '同一订单任务内卡片展示和处理排序',
|
||||
card_status VARCHAR(32) NOT NULL COMMENT '卡片状态:READONLY、PENDING_CONFIRM、REVIEW_REQUIRED、CONFIRMED',
|
||||
review_status VARCHAR(32) NULL COMMENT '人工复核状态,非复核卡为空',
|
||||
ai_payload_json LONGTEXT NOT NULL COMMENT 'AI 原始卡片 payload JSON 快照',
|
||||
display_payload_json LONGTEXT NULL COMMENT '前端展示用 payload JSON 快照',
|
||||
confirmed_payload_json LONGTEXT NULL COMMENT '用户最终确认 payload JSON',
|
||||
review_resolution_json LONGTEXT NULL COMMENT '人工复核解阻结果 JSON',
|
||||
validation_errors_json LONGTEXT NULL COMMENT '第一版后端校验错误 JSON',
|
||||
confirmed_by VARCHAR(128) NULL COMMENT '最终确认人标识',
|
||||
confirmed_at DATETIME(6) NULL COMMENT '最终确认 UTC 时间',
|
||||
version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本',
|
||||
created_at DATETIME(6) NOT NULL COMMENT '记录创建 UTC 时间',
|
||||
updated_at DATETIME(6) NOT NULL COMMENT '记录更新 UTC 时间',
|
||||
logic_deleted_at DATETIME(6) NULL COMMENT '逻辑删除 UTC 时间,第一版不主动使用',
|
||||
logic_deleted_reason VARCHAR(512) NULL COMMENT '逻辑删除原因,第一版不主动使用',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_reservation_v4_task_card_slot (hotel_id, v4_order_task_id, card_sort_order, source_event_index),
|
||||
KEY idx_reservation_v4_task_card_task (hotel_id, v4_order_task_id, card_sort_order),
|
||||
KEY idx_reservation_v4_task_card_source (hotel_id, source_message_id),
|
||||
KEY idx_reservation_v4_task_card_transition (hotel_id, ai_transition_id),
|
||||
KEY idx_reservation_v4_task_card_status (hotel_id, card_status)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='Reservation V4 多卡任务表';
|
||||
|
||||
CREATE TABLE workflow_reservation_v4_source_notification (
|
||||
id BIGINT NOT NULL COMMENT 'V4 来源通知 ID',
|
||||
hotel_id VARCHAR(64) NOT NULL COMMENT '酒店 ID',
|
||||
source_message_id BIGINT NOT NULL COMMENT 'SourceMessage Inbox 内部 ID',
|
||||
ai_batch_id BIGINT NOT NULL COMMENT 'AI 回调批次 ID',
|
||||
ai_transition_id BIGINT NULL COMMENT 'AI transition ID,S10 第一版可为空',
|
||||
route_code VARCHAR(32) NOT NULL COMMENT '包级路由码,第一版用于 S10 来源通知',
|
||||
notification_status VARCHAR(32) NOT NULL COMMENT '通知状态:ACK_REQUIRED、ACKED',
|
||||
raw_payload_json LONGTEXT NOT NULL COMMENT '来源通知原始 AI 片段或包级摘要 JSON',
|
||||
ack_by VARCHAR(128) NULL COMMENT '确认处理人标识',
|
||||
ack_at DATETIME(6) NULL COMMENT '确认处理 UTC 时间',
|
||||
source_received_at DATETIME(6) NOT NULL COMMENT '来源邮件接收 UTC 时间,用于排序',
|
||||
version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本',
|
||||
created_at DATETIME(6) NOT NULL COMMENT '记录创建 UTC 时间',
|
||||
updated_at DATETIME(6) NOT NULL COMMENT '记录更新 UTC 时间',
|
||||
logic_deleted_at DATETIME(6) NULL COMMENT '逻辑删除 UTC 时间,第一版不主动使用',
|
||||
logic_deleted_reason VARCHAR(512) NULL COMMENT '逻辑删除原因,第一版不主动使用',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_reservation_v4_notification_message_batch (hotel_id, source_message_id, ai_batch_id),
|
||||
KEY idx_reservation_v4_notification_status (hotel_id, notification_status, source_received_at),
|
||||
KEY idx_reservation_v4_notification_source (hotel_id, source_message_id),
|
||||
KEY idx_reservation_v4_notification_transition (hotel_id, ai_transition_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='Reservation V4 S10 来源通知表';
|
||||
Reference in New Issue
Block a user