-- ----------------------------
-- 角色信息表
-- ----------------------------
DROP TABLE IF EXISTS sys_role;

-- 创建角色信息表
CREATE TABLE sys_role
(
    role_id             BIGSERIAL PRIMARY KEY,     -- 角色ID，自增字段，主键
    role_name           VARCHAR(30)  NOT NULL,     -- 角色名称
    role_key            VARCHAR(100) NOT NULL,     -- 角色权限字符串
    role_sort           INT          NOT NULL,     -- 显示顺序
    data_scope          CHAR(1)      DEFAULT '1',  -- 数据范围
    menu_check_strictly BOOLEAN      DEFAULT TRUE, -- 菜单树选择项是否关联显示
    dept_check_strictly BOOLEAN      DEFAULT TRUE, -- 部门树选择项是否关联显示
    status              CHAR(1)      NOT NULL,     -- 角色状态（0正常 1停用）
    del_flag            CHAR(1)      DEFAULT '0',  -- 删除标志（0代表存在 2代表删除）
    create_by           VARCHAR(64)  DEFAULT '',   -- 创建者
    create_time         TIMESTAMP,                 -- 创建时间
    update_by           VARCHAR(64)  DEFAULT '',   -- 更新者
    update_time         TIMESTAMP,                 -- 更新时间
    remark              VARCHAR(500) DEFAULT NULL, -- 备注
);

-- 添加注释
COMMENT ON TABLE sys_role IS '角色信息表';
COMMENT ON COLUMN sys_role.role_id IS '角色ID';
COMMENT ON COLUMN sys_role.role_name IS '角色名称';
COMMENT ON COLUMN sys_role.role_key IS '角色权限字符串';
COMMENT ON COLUMN sys_role.role_sort IS '显示顺序';
COMMENT ON COLUMN sys_role.data_scope IS '数据范围';
COMMENT ON COLUMN sys_role.menu_check_strictly IS '菜单树选择项是否关联显示';
COMMENT ON COLUMN sys_role.dept_check_strictly IS '部门树选择项是否关联显示';
COMMENT ON COLUMN sys_role.status IS '角色状态（0正常 1停用）';
COMMENT ON COLUMN sys_role.del_flag IS '删除标志（0代表存在 2代表删除）';
COMMENT ON COLUMN sys_role.create_by IS '创建者';
COMMENT ON COLUMN sys_role.create_time IS '创建时间';
COMMENT ON COLUMN sys_role.update_by IS '更新者';
COMMENT ON COLUMN sys_role.update_time IS '更新时间';
COMMENT ON COLUMN sys_role.remark IS '备注';

-- 初始化-角色信息表数据
INSERT INTO sys_role (role_name, role_key, role_sort, data_scope, menu_check_strictly, dept_check_strictly, status,
                      del_flag, create_by, create_time, update_by, update_time, remark)
VALUES ('超级管理员', 'admin', 1, '1', TRUE, TRUE, '0', '0', 'admin', CURRENT_TIMESTAMP, '', CURRENT_TIMESTAMP,
        '超级管理员'),
       ('普通角色', 'common', 2, '2', TRUE, TRUE, '0', '0', 'admin', CURRENT_TIMESTAMP, '', CURRENT_TIMESTAMP,
        '普通角色');















