-- 创建角色表
CREATE TABLE IF NOT EXISTS yz_roles (
    role_id INT PRIMARY KEY AUTO_INCREMENT COMMENT '角色ID',
    tenant_id INT NOT NULL COMMENT '租户ID',
    role_code VARCHAR(50) NOT NULL COMMENT '角色代码',
    role_name VARCHAR(50) NOT NULL COMMENT '角色名称',
    description VARCHAR(500) DEFAULT NULL COMMENT '角色描述',
    status TINYINT DEFAULT 1 COMMENT '角色状态：0-禁用，1-启用',
    sort_order INT DEFAULT 0 COMMENT '排序序号',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',    
    delete_time DATETIME DEFAULT NULL COMMENT '删除时间',
    create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
    
    -- 索引
    UNIQUE KEY uk_role_code (role_code),
    INDEX idx_status (status),
    INDEX idx_sort_order (sort_order),
    INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';

-- 插入默认角色数据
INSERT INTO yz_roles (tenant_id, role_code, role_name, description, status, sort_order, create_by, delete_time) VALUES
(0, 'system_admin', '系统管理员', '系统超级管理员，拥有所有权限', 1, 1, 'system'),
(0, 'admin', '管理员', '普通管理员，拥有大部分管理权限', 1, 2, 'system'),
(0, 'user', '普通用户', '普通用户，拥有基础使用权限', 1, 3, 'system')
ON DUPLICATE KEY UPDATE 
    tenant_id = VALUES(tenant_id),
    role_name = VALUES(role_name),
    description = VALUES(description),
    update_time = CURRENT_TIMESTAMP,
    delete_time = NULL;

