-- 消费者扫码访问事件表（不使用 tenant_id）
CREATE TABLE IF NOT EXISTS mes_trace_consumer_scan_event (
    id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
    trace_code VARCHAR(255) NOT NULL COMMENT '扫码原始内容（必要时截断）',
    normalized_code VARCHAR(128) DEFAULT NULL COMMENT '解析后的追溯码',
    source_type VARCHAR(32) DEFAULT NULL COMMENT '入口类型：BAG/PALLET/BATCH',
    channel VARCHAR(32) DEFAULT NULL COMMENT '扫码入口渠道：微信/支付宝/浏览器',
    province VARCHAR(64) DEFAULT NULL COMMENT '省份（IP 归属地）',
    city VARCHAR(64) DEFAULT NULL COMMENT '城市（IP 归属地）',
    batch_id BIGINT DEFAULT NULL COMMENT '生产批次编号',
    success TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否查询成功',
    error_code VARCHAR(64) DEFAULT NULL COMMENT '失败编码',
    ip_hash CHAR(64) DEFAULT NULL COMMENT '客户端 IP SHA-256 摘要',
    user_agent_hash CHAR(64) DEFAULT NULL COMMENT 'User-Agent SHA-256 摘要',
    event_time DATETIME NOT NULL COMMENT '访问时间',
    create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    creator VARCHAR(64) DEFAULT NULL COMMENT '创建者',
    updater VARCHAR(64) DEFAULT NULL COMMENT '更新者',
    deleted BIT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
    PRIMARY KEY (id),
    KEY idx_trace_consumer_event_time (event_time),
    KEY idx_trace_consumer_batch_id (batch_id),
    KEY idx_trace_consumer_success (success),
    KEY idx_trace_consumer_source_type (source_type),
    KEY idx_trace_consumer_channel (channel),
    KEY idx_trace_consumer_province (province)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消费者扫码访问事件';
