use school_news;
-- MySQL Script to create the user table
DROP TABLE IF EXISTS `tb_sys_user`;
CREATE TABLE `tb_sys_user` (
  `id` VARCHAR(50) NOT NULL COMMENT '用户ID',
  `username` VARCHAR(50) NOT NULL COMMENT '用户名',
  `password` VARCHAR(128) NOT NULL COMMENT '密码（建议存储 bcrypt/argon2 哈希）',
  `email` VARCHAR(100) DEFAULT NULL COMMENT '电子邮件',
  `phone` VARCHAR(20) DEFAULT NULL COMMENT '电话号码',
  `wechat_id` VARCHAR(50) DEFAULT NULL COMMENT '微信ID',
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
  `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
  `status` INT(4) NOT NULL DEFAULT 1 COMMENT '状态',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_username` (`username`),
  UNIQUE KEY `uk_user_email` (`email`),
  KEY `idx_user_phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- 推荐：把默认 admin 密码替换为已哈希的值

-- 用户信息表
DROP TABLE IF EXISTS `tb_sys_user_info`;
CREATE TABLE `tb_sys_user_info` (
  `id` VARCHAR(50) NOT NULL COMMENT '用户信息ID',
  `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
  `avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像',
  `gender` INT(4) DEFAULT 0 COMMENT '性别',
  `family_name` VARCHAR(50) DEFAULT NULL COMMENT '姓',
  `given_name` VARCHAR(50) DEFAULT NULL COMMENT '名',
  `full_name` VARCHAR(100) DEFAULT NULL COMMENT '全名',
  `level` FLOAT DEFAULT 1 COMMENT '等级',
  `student_id` VARCHAR(50) DEFAULT NULL COMMENT '学号',
  `id_card` VARCHAR(50) DEFAULT NULL COMMENT '身份证号',
  `address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
  `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_user_info_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;


DROP TABLE IF EXISTS `tb_sys_login_log`;
CREATE TABLE `tb_sys_login_log` (
  `id` VARCHAR(50) NOT NULL COMMENT '登录日志ID',
  `user_id` VARCHAR(50) NULL COMMENT '用户ID',
  `username` VARCHAR(50) NOT NULL COMMENT '用户名',
  `ip_address` VARCHAR(45) DEFAULT NULL COMMENT 'IP地址',
  `ip_source` VARCHAR(100) DEFAULT NULL COMMENT 'IP来源',
  `browser` VARCHAR(100) DEFAULT NULL COMMENT '浏览器',
  `os` VARCHAR(100) DEFAULT NULL COMMENT '操作系统',
  `password` VARCHAR(100) DEFAULT NULL COMMENT '密码',
  `login_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间',
  `status` INT(4) DEFAULT 1 COMMENT '登录状态（0失败 1成功）',
  `error_count` INT(4) DEFAULT 0 COMMENT '错误次数',
  `message` VARCHAR(255) DEFAULT NULL COMMENT '登录消息',
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`),
  index `idx_user_id` (`user_id`) USING BTREE,
  index `idx_login_time` (`login_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

