-- =====================================================
-- 设备模版管理功能 - 数据库初始化脚本
-- 创建时间: 2026-04-12
-- 说明: 用于初始化设备模版管理功能所需的数据库表和权限
-- =====================================================

-- 1. 创建层模版表
CREATE TABLE IF NOT EXISTS `t_layer_template` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `template_id` VARCHAR(64) DEFAULT NULL COMMENT '模板ID（哈哈平台返回）',
  `device_id` VARCHAR(64) NOT NULL COMMENT '设备ID（SN号）',
  `template_name` VARCHAR(256) DEFAULT NULL COMMENT '模板名称',
  `device_type` INT DEFAULT NULL COMMENT '设备类型',
  `template_type` VARCHAR(20) DEFAULT 'LAYER' COMMENT '模版类型: LAYER-层模版, CABINET-柜模版',
  `shelf_num` INT DEFAULT NULL COMMENT '机柜层数',
  `left_floors` JSON DEFAULT NULL COMMENT '左门层数据（JSON格式）',
  `right_floors` JSON DEFAULT NULL COMMENT '右门层数据（JSON格式）',
  `goods_rule` TEXT DEFAULT NULL COMMENT '商品规则',
  `sync_status` INT DEFAULT 0 COMMENT '同步状态：0-未同步，1-同步中，2-已同步，3-同步失败',
  `sync_time` DATETIME DEFAULT NULL COMMENT '最后同步时间',
  `is_deleted` INT DEFAULT 0 COMMENT '是否删除：0-正常，1-已删除',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_device_id` (`device_id`),
  KEY `idx_sync_status` (`sync_status`),
  KEY `idx_template_id` (`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备层模版表';

-- 2. 添加设备模版管理模块的权限
-- 2. 添加设备模版管理模块的权限
INSERT INTO t_data_permission (id,permission_code, permission_name, module_code, module_name, operation_type, description, sort_order) VALUES
(68,'layer-template:create', '创建设备模版', 'layer-template', '设备模版管理', 'create', '添加新设备模版', 151),
(69,'layer-template:read', '查询设备模版', 'layer-template', '设备模版管理', 'read', '查看设备模版列表和详情', 152),
(70,'layer-template:update', '修改设备模版', 'layer-template', '设备模版管理', 'update', '编辑设备模版信息和同步操作', 153),
(71,'layer-template:delete', '删除设备模版', 'layer-template', '设备模版管理', 'delete', '删除设备模版', 154);
-- 3. 为超级管理员角色(role.id=1)分配设备模版管理权限
INSERT IGNORE INTO t_role_permission (role_id, permission_id)
SELECT 1, id FROM t_data_permission WHERE module_code = 'layer-template' AND status = 1;

-- =====================================================
-- 执行完成提示
-- =====================================================
SELECT '✅ 设备模版管理功能数据库初始化完成！' AS message;
SELECT COUNT(*) AS table_exists FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = 't_layer_template';
SELECT COUNT(*) AS permission_count FROM t_data_permission WHERE module_code = 'layer-template';
