-- 创建租户表
-- 创建时间: 2025
-- 描述: 云泽系统租户管理表

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- 检查并创建租户表（如果不存在）
CREATE TABLE IF NOT EXISTS yz_tenants (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '租户ID',
    
    -- 基本信息
    name VARCHAR(100) NOT NULL COMMENT '租户名称',
    code VARCHAR(50) NOT NULL COMMENT '租户编码（唯一）',
    owner VARCHAR(50) NOT NULL COMMENT '负责人',
    phone VARCHAR(20) DEFAULT NULL COMMENT '联系电话',
    email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
    
    -- 状态信息
    status VARCHAR(20) DEFAULT 'enabled' COMMENT '状态：enabled-启用，disabled-禁用',
    audit_status VARCHAR(20) DEFAULT 'pending' COMMENT '审核状态：pending-待审核，approved-已通过，rejected-已拒绝',
    
    -- 审核信息
    audit_comment TEXT DEFAULT NULL COMMENT '审核意见',
    audit_by VARCHAR(50) DEFAULT NULL COMMENT '审核人',
    audit_time DATETIME DEFAULT NULL COMMENT '审核时间',
    
    -- 其他信息
    remark TEXT DEFAULT NULL 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_code (code),
    INDEX idx_name (name),
    INDEX idx_owner (owner),
    INDEX idx_status (status),
    INDEX idx_audit_status (audit_status),
    INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';

SET FOREIGN_KEY_CHECKS = 1;

-- =============================================
-- 插入测试数据
-- =============================================

-- 清空现有测试数据（可选，注释掉以保留现有数据）
-- DELETE FROM yz_tenants WHERE id > 0;

-- 插入测试租户数据
INSERT INTO yz_tenants (
    name, 
    code, 
    owner, 
    phone, 
    email, 
    status, 
    audit_status, 
    audit_comment, 
    audit_by, 
    audit_time,
    remark, 
    create_by
) VALUES
-- 默认租户（已通过审核）
('默认租户', 'default', 'admin', '13800138000', 'admin@yunzer.com', 'enabled', 'approved', '系统默认租户，自动通过审核', 'system', NOW(), '系统默认租户，用于初始化数据', 'system'),

-- 示例租户A（已通过审核）
('示例租户A', 'demo-a', '张三', '13900139000', 'zhangsan@demo.com', 'enabled', 'approved', '资料完整，审核通过', 'admin', DATE_SUB(NOW(), INTERVAL 30 DAY), '演示租户A，用于展示功能', 'admin'),

-- 示例租户B（待审核）
('示例租户B', 'demo-b', '李四', '13700137000', 'lisi@demo.com', 'enabled', 'pending', NULL, NULL, NULL, '待审核租户，资料已提交', 'admin'),

-- 新申请租户C（待审核）
('新申请租户C', 'new-tenant-c', '王五', '13600136000', 'wangwu@new.com', 'enabled', 'pending', NULL, NULL, NULL, '新申请的租户，等待审核', 'admin'),

-- 已拒绝租户D
('已拒绝租户D', 'rejected-tenant', '赵六', '13500135000', 'zhaoliu@reject.com', 'disabled', 'rejected', '申请资料不完整，缺少必要信息', 'admin', DATE_SUB(NOW(), INTERVAL 10 DAY), '申请被拒绝的租户示例', 'admin'),

-- 企业租户E（已通过）
('企业租户E', 'enterprise-e', '陈七', '13400134000', 'chenqi@enterprise.com', 'enabled', 'approved', '企业级用户，认证通过', 'admin', DATE_SUB(NOW(), INTERVAL 15 DAY), '大型企业客户租户', 'admin'),

-- 测试租户F（已通过）
('测试租户F', 'test-f', '刘八', '13300133000', 'liuba@test.com', 'enabled', 'approved', '测试环境使用，已通过', 'admin', DATE_SUB(NOW(), INTERVAL 5 DAY), '测试环境租户', 'admin'),

-- 禁用租户G
('禁用租户G', 'disabled-g', '周九', '13200132000', 'zhoujiu@disabled.com', 'disabled', 'approved', '已通过审核但被禁用', 'admin', DATE_SUB(NOW(), INTERVAL 20 DAY), '已禁用的租户示例', 'admin'),

-- 小公司租户H（待审核）
('小公司租户H', 'small-h', '吴十', '13100131000', 'wushi@small.com', 'enabled', 'pending', NULL, NULL, NULL, '小型公司申请，等待审核', 'admin'),

-- 个人开发者租户I（已通过）
('个人开发者I', 'developer-i', '郑十一', '13000130000', 'zhengshiyi@dev.com', 'enabled', 'approved', '个人开发者账户，审核通过', 'admin', DATE_SUB(NOW(), INTERVAL 8 DAY), '个人开发者租户', 'admin');

-- 查询验证
SELECT 'Tenants table created and test data inserted successfully!' as message;
SELECT COUNT(*) as total_tenants FROM yz_tenants;
SELECT 
    id, 
    name, 
    code, 
    status, 
    audit_status,
    create_time 
FROM yz_tenants 
ORDER BY id;
