-- 字典类型表
CREATE TABLE IF NOT EXISTS `sys_dict_type` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` int(11) NOT NULL DEFAULT '0' COMMENT '租户ID（0表示平台字典，>0表示租户字典）',
  `dict_code` varchar(50) NOT NULL COMMENT '字典编码（唯一，如 USER_STATUS）',
  `dict_name` varchar(100) NOT NULL COMMENT '字典名称（如 用户状态）',
  `parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父级字典ID（0表示一级字典）',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态（0-禁用，1-启用）',
  `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除（0-未删，1-已删）',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_dict_code_tenant` (`dict_code`, `is_deleted`),
  KEY `idx_parent_id` (`parent_id`, `is_deleted`),
  KEY `idx_status` (`status`, `is_deleted`),
  KEY `idx_tenant_id` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';

-- 字典项表
CREATE TABLE IF NOT EXISTS `sys_dict_item` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `dict_type_id` bigint(20) NOT NULL COMMENT '字典类型ID',
  `dict_label` varchar(100) NOT NULL COMMENT '字典标签（显示值，如 正常）',
  `dict_value` varchar(100) NOT NULL COMMENT '字典值（存储值，如 1）',
  `parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父级字典项ID（0表示一级项）',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态（0-禁用，1-启用）',
  `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序号',
  `color` varchar(20) DEFAULT NULL COMMENT '颜色标记（如 #1890ff）',
  `icon` varchar(50) DEFAULT NULL COMMENT '图标（如 el-icon-success）',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除（0-未删，1-已删）',
  PRIMARY KEY (`id`),
  KEY `idx_dict_type_parent_status` (`dict_type_id`, `parent_id`, `status`, `is_deleted`),
  UNIQUE KEY `uk_dict_type_value` (`dict_type_id`, `dict_value`, `is_deleted`),
  KEY `idx_parent_id` (`parent_id`, `status`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典项表';

