-- Ops 模块：客流统计小时汇总表
-- 用于业务报表统计，数据来源于 IoT 设备的客流计数器
-- 每小时由 Ops 的 TrafficStatisticsPersistJob 从 Redis 持久化到 MySQL

CREATE TABLE IF NOT EXISTS `ops_traffic_statistics` (
    `id`           BIGINT AUTO_INCREMENT PRIMARY KEY,
    `device_id`    BIGINT       NOT NULL COMMENT '设备ID（数据来源）',
    `area_id`      BIGINT       NOT NULL COMMENT '区域ID（主查询维度）',
    `stat_hour`    DATETIME     NOT NULL COMMENT '统计小时（精确到小时，如 2026-02-03 10:00:00）',
    `people_in`    INT          NOT NULL DEFAULT 0 COMMENT '进入人数',
    `people_out`   INT          NOT NULL DEFAULT 0 COMMENT '离开人数',
    `tenant_id`    BIGINT       NOT NULL DEFAULT 0 COMMENT '租户ID',
    `creator`      VARCHAR(64)  DEFAULT '' COMMENT '创建者',
    `create_time`  DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `updater`      VARCHAR(64)  DEFAULT '' COMMENT '更新者',
    `update_time`  DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted`      BIT(1)       NOT NULL DEFAULT 0 COMMENT '是否删除',

    -- 唯一约束：同一设备、同一小时、同一租户，只有一条记录
    UNIQUE KEY `uk_device_hour_tenant` (`device_id`, `stat_hour`, `tenant_id`, `deleted`),

    -- 区域+小时索引：用于按区域统计客流
    INDEX `idx_area_hour` (`area_id`, `stat_hour`),

    -- 设备+小时索引：用于按设备查询历史
    INDEX `idx_device_hour` (`device_id`, `stat_hour`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客流统计小时汇总表（Ops业务统计）';
