-- 租户表
CREATE TABLE IF NOT EXISTS `t_sys_tenant` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `name` VARCHAR(100) NOT NULL COMMENT '租户名称',
    `code` VARCHAR(50) NOT NULL COMMENT '租户编码（唯一，用于访问链接）',
    `domain` VARCHAR(100) DEFAULT NULL COMMENT '租户域名（可选，用于子域名访问）',
    `description` VARCHAR(500) DEFAULT NULL COMMENT '租户描述',
    `is_super` TINYINT DEFAULT 0 COMMENT '是否为超级租户：0-否，1-是',
    `tenant_type` VARCHAR(50) DEFAULT 'other' COMMENT '租户类型：platform/library/kindergarten/school/institution/other',
    `valid_state` TINYINT DEFAULT 1 COMMENT '有效状态：1-有效，2-失效',
    `create_by` VARCHAR(50) DEFAULT NULL COMMENT '创建人',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_by` VARCHAR(50) DEFAULT NULL COMMENT '更新人',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除标识（0-未删除，1-已删除）',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_code` (`code`),
    UNIQUE KEY `uk_domain` (`domain`),
    KEY `idx_tenant_type` (`tenant_type`),
    KEY `idx_valid_state` (`valid_state`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';

-- 租户菜单关联表
CREATE TABLE IF NOT EXISTS `t_auth_tenant_menu` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键 ID',
    `tenant_id` BIGINT NOT NULL COMMENT '租户 ID',
    `menu_id` BIGINT NOT NULL COMMENT '菜单 ID',
    PRIMARY KEY (`id`),
    KEY `idx_tenant_id` (`tenant_id`),
    KEY `idx_menu_id` (`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户菜单关联表';

-- 初始化超级租户
INSERT INTO `t_sys_tenant` (`name`, `code`, `description`, `is_super`, `tenant_type`, `valid_state`)
VALUES ('平台管理员', 'platform', '平台超级租户', 1, 'platform', 1)
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`);
