-- 创建标签历史扫描记录表
CREATE TABLE IF NOT EXISTS `label_scan_history` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `CustomerId` int(11) NOT NULL COMMENT '客户ID',
  `ReferenceNumber` varchar(100) DEFAULT NULL COMMENT '参考号',
  `NeutralWaybillNumber` varchar(100) NOT NULL COMMENT '中性面单单号',
  `FinalMileTrackingNumber` varchar(100) DEFAULT NULL COMMENT '尾程跟踪单号',
  `Result` tinyint(4) NOT NULL COMMENT '扫描结果：0=已返回面单, 1=无面单数据, 2=无下单数据, 3=订单被冻结, 4=订单已销毁, 5=其他',
  `Description` varchar(500) DEFAULT NULL COMMENT '描述',
  `CreatedBy` varchar(100) NOT NULL COMMENT '创建人',
  `DeviceCode` varchar(64) DEFAULT NULL COMMENT '设备唯一编码（GUID）',
  `DeviceName` varchar(100) DEFAULT NULL COMMENT '设备名称（计算机名）',
  `CreatedAt` datetime NOT NULL COMMENT '创建时间',
  `UpdatedAt` datetime NOT NULL COMMENT '更新时间',
  PRIMARY KEY (`Id`),
  KEY `IX_CustomerId` (`CustomerId`),
  KEY `IX_NeutralWaybillNumber` (`NeutralWaybillNumber`),
  KEY `IX_ReferenceNumber` (`ReferenceNumber`),
  KEY `IX_FinalMileTrackingNumber` (`FinalMileTrackingNumber`),
  KEY `IX_CreatedAt` (`CreatedAt`),
  KEY `IX_Result` (`Result`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='标签历史扫描记录表';

-- 创建扫描结果枚举说明
-- 0: 已返回面单 - 成功获取到面单数据
-- 1: 无面单数据 - 未找到对应的面单数据
-- 2: 无下单数据 - 未找到对应的下单数据
-- 3: 订单被冻结 - 订单状态为冻结，无法处理
-- 4: 订单已销毁 - 订单已被销毁，无法处理
-- 5: 其他 - 其他异常情况

-- 添加索引以支持分组和统计查询
ALTER TABLE `label_scan_history` ADD INDEX `IX_CustomerId_NeutralWaybillNumber` (`CustomerId`, `NeutralWaybillNumber`);
ALTER TABLE `label_scan_history` ADD INDEX `IX_CustomerId_CreatedAt` (`CustomerId`, `CreatedAt`);