-- =================================================================
-- 字段级变更记录表
--
-- 用于记录对房源 (house_resource) 和经营主体 (business_entity_info /
-- business_entity_sell) 的指定字段进行 新增 / 修改 的 diff 日志。
-- 仅覆盖 operation_type IN (1, 2)；逻辑删除继续走 data_change_record。
--
-- field_code / subject_type 取值见:
--   com.ruoyi.system.domain.fieldchangerecord.enums.FieldCode
--   com.ruoyi.system.domain.changerecord.enums.SubjectType
-- =================================================================

CREATE TABLE IF NOT EXISTS `data_field_change_record` (
  `id` VARCHAR(64) NOT NULL COMMENT '记录 id',
  `subject_type` VARCHAR(64) NOT NULL COMMENT 'HOUSE_RESOURCE / BUSINESS_ENTITY_INFO',
  `subject_id` VARCHAR(64) NOT NULL COMMENT '主体 id（BE_YEAR_SELL 存 business_entity_info_id）',
  `field_code` VARCHAR(64) NOT NULL COMMENT '业务语义字段码，详见 FieldCode 枚举',
  `old_value` TEXT DEFAULT NULL COMMENT 'insert 时为 NULL；图片类字段直接存真实 URL 串',
  `new_value` TEXT DEFAULT NULL COMMENT 'BE_YEAR_SELL 格式为 year=2025;value=523.50',
  `operation_type` TINYINT NOT NULL COMMENT '1 新增 2 修改',
  `operation_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
  PRIMARY KEY (`id`),
  KEY `idx_query` (`subject_type`, `field_code`, `operation_time`),
  KEY `idx_subject` (`subject_type`, `subject_id`, `operation_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字段级变更记录表';
