-- 创建用户表
CREATE TABLE yz_users (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
    username VARCHAR(50) NOT NULL COMMENT '用户名',
    password VARCHAR(255) NOT NULL COMMENT '加密后的密码',
    salt VARCHAR(100) NOT NULL COMMENT '密码盐值',
    email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
    avatar VARCHAR(500) DEFAULT NULL COMMENT '头像URL',
    nickname VARCHAR(50) DEFAULT NULL COMMENT '昵称',
    role VARCHAR(20) DEFAULT 'user' COMMENT '用户角色：admin-管理员，user-普通用户',
    status TINYINT DEFAULT 1 COMMENT '用户状态：0-禁用，1-启用',
    last_login_time DATETIME DEFAULT NULL COMMENT '最后登录时间',
    last_login_ip VARCHAR(45) DEFAULT NULL COMMENT '最后登录IP',
    login_count INT DEFAULT 0 COMMENT '登录次数',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
    
    -- 索引
    UNIQUE KEY uk_username (username),
    INDEX idx_email (email),
    INDEX idx_role (role),
    INDEX idx_status (status),
    INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';

-- 插入默认管理员用户
-- 密码为 yunzer123，已使用scrypt算法加密
INSERT INTO yz_users (username, password, salt, email, nickname, role, status, create_by) VALUES
('admin', 'encrypted_password_here', 'salt_here', 'admin@yunzer.com', '超级管理员', 'admin', 1, 'system'),
('test', 'encrypted_password_here', 'salt_here', 'test@yunzer.com', '测试用户', 'user', 1, 'system');
