-- 设备开关门记录表
-- 用于记录用户每次开关门的详细流水信息，包括开门时间、关门时间、持续时长、是否有消费等

CREATE TABLE IF NOT EXISTS `t_door_record` (
  `id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
  `activity_id` VARCHAR(64) NOT NULL COMMENT '活动 ID（哈哈平台生成）',
  `device_id` VARCHAR(32) NOT NULL COMMENT '设备 ID',
  `user_id` BIGINT(20) NOT NULL COMMENT '用户 ID',
  `door_index` VARCHAR(10) DEFAULT NULL COMMENT '门索引（A/B/C/D）',
  `open_type` VARCHAR(10) NOT NULL COMMENT '开门类型：IN-上货，OUT-消费',
  `door_status` VARCHAR(20) NOT NULL COMMENT '门状态：OPENED-已开门，CLOSED-已关门',
  `nobuy` TINYINT(1) DEFAULT 0 COMMENT '是否有消费：0-有消费，1-无消费',
  `order_id` BIGINT(20) DEFAULT NULL COMMENT '订单 ID（如果有消费则关联订单）',
  `open_time` DATETIME NOT NULL COMMENT '开门时间',
  `close_time` DATETIME DEFAULT NULL COMMENT '关门时间',
  `duration` INT(11) DEFAULT NULL COMMENT '持续时长（秒）',
  `source` VARCHAR(20) DEFAULT NULL COMMENT '记录来源：MINIAPP-小程序，ADMIN-管理后台',
  `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注信息',
  `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_activity_id` (`activity_id`),
  KEY `idx_user_id` (`user_id`),
  KEY `idx_device_id` (`device_id`),
  KEY `idx_order_id` (`order_id`),
  KEY `idx_open_time` (`open_time`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备开关门记录表';

-- 数据初始化说明
-- 1. 该表从新部署时自动创建
-- 2. 历史数据可以通过定时任务或脚本进行补充（如果需要）
-- 3. 建议定期归档旧数据（如超过 1 年的记录）
