-- 创建部门表
-- 创建时间: 2025
-- 描述: OA系统部门管理表

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- 检查并创建租户部门表（如果不存在）
CREATE TABLE IF NOT EXISTS yz_tenant_departments (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '部门ID',
    tenant_id INT NOT NULL DEFAULT 0 COMMENT '租户ID',
    name VARCHAR(100) NOT NULL COMMENT '部门名称',
    code VARCHAR(50) DEFAULT NULL COMMENT '部门编码',
    parent_id INT DEFAULT 0 COMMENT '父部门ID，0表示顶级部门',
    description TEXT DEFAULT NULL COMMENT '部门描述',
    manager_id INT DEFAULT NULL COMMENT '部门经理ID',
    sort_order INT DEFAULT 0 COMMENT '排序序号',
    status TINYINT DEFAULT 1 COMMENT '状态：1-启用，0-禁用',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    delete_time DATETIME DEFAULT NULL COMMENT '删除时间（软删除）',
    
    -- 索引
    INDEX idx_tenant_id (tenant_id),
    INDEX idx_code (code),
    INDEX idx_parent_id (parent_id),
    INDEX idx_status (status),
    INDEX idx_sort_order (sort_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户部门表';

SET FOREIGN_KEY_CHECKS = 1;

