-- 管理员表
CREATE TABLE IF NOT EXISTS `t_admin` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '密码(BCrypt加密)',
  `real_name` varchar(50) DEFAULT NULL COMMENT '真实姓名',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `avatar` varchar(500) DEFAULT NULL COMMENT '头像URL',
  `department` varchar(100) DEFAULT NULL COMMENT '部门',
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态：1-正常，2-禁用',
  `role_ids` varchar(200) DEFAULT NULL COMMENT '角色ID列表(逗号分隔)',
  `last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
  `last_login_ip` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
  `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_username` (`username`),
  KEY `idx_phone` (`phone`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员表';

-- 插入测试管理员数据
-- 密码都是: admin123 (BCrypt加密后的值)
INSERT INTO `t_admin` (`id`, `username`, `password`, `real_name`, `phone`, `email`, `department`, `status`, `role_ids`) VALUES
(1, 'admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z2EHCDhn/n8mrEio3Knt2CCi', '系统管理员', '13800138000', 'admin@haha.com', '技术部', 1, '1'),
(2, 'operator', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z2EHCDhn/n8mrEio3Knt2CCi', '运营人员', '13800138001', 'operator@haha.com', '运营部', 1, '2'),
(3, 'service', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z2EHCDhn/n8mrEio3Knt2CCi', '客服人员', '13800138002', 'service@haha.com', '客服部', 1, '3');

-- 角色表
CREATE TABLE IF NOT EXISTS `t_admin_role` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `role_name` varchar(50) NOT NULL COMMENT '角色名称',
  `role_code` varchar(50) NOT NULL COMMENT '角色编码',
  `description` varchar(200) DEFAULT NULL COMMENT '角色描述',
  `permissions` text COMMENT '权限列表(JSON格式)',
  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态：1-启用，2-禁用',
  `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_role_code` (`role_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员角色表';

-- 插入测试角色数据
INSERT INTO `t_admin_role` (`id`, `role_name`, `role_code`, `description`, `permissions`) VALUES
(1, '超级管理员', 'super_admin', '拥有系统所有权限', '["*:*:*"]'),
(2, '运营人员', 'operator', '负责日常运营管理', '["order:*:*","device:*:*","store:*:*","product:*:*"]'),
(3, '客服人员', 'service', '负责客户服务', '["order:view:*","order:refund:*"]');
