-- =============================================================================
-- 会员等级配置 biz_member_level
-- 用途：平台维护会员等级体系（等级、图标、名称、权益说明）
-- 关联：biz_member.member_level = 本表 level_no（未删除且启用的等级）
-- 说明：替代/补充原字典 biz_member_level；C 端与平台端展示等级信息时 JOIN 本表
-- =============================================================================
CREATE TABLE IF NOT EXISTS `biz_member_level` (
  `level_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '等级ID，主键',
  `level_no` tinyint(4) NOT NULL COMMENT '等级（序号；数值越大等级越高；与 biz_member.member_level 对应）',
  `level_name` varchar(64) NOT NULL COMMENT '会员名称（等级展示名，如 普通会员、黄金会员）',
  `level_icon` varchar(512) DEFAULT NULL COMMENT '会员图标URL',
  `benefits` text COMMENT '会员权益（说明文案；可多行或富文本）',
  `sort_no` int(11) NOT NULL DEFAULT '0' COMMENT '展示排序（升序）',
  `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态：0启用 1停用',
  `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '删除标志：0存在 2逻辑删除',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`level_id`),
  UNIQUE KEY `uk_level_no` (`level_no`, `del_flag`),
  KEY `idx_status_sort` (`status`, `sort_no`, `del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员等级配置表';

-- =============================================================================
-- 初始等级（可选；若已存在同 level_no 则跳过）
-- =============================================================================
INSERT INTO `biz_member_level` (
  `level_no`, `level_name`, `level_icon`, `benefits`, `sort_no`, `status`, `del_flag`, `create_by`, `create_time`, `remark`
)
SELECT 0, '普通会员', NULL, '享受平台基础购物服务', 0, '0', '0', 'admin', NOW(), '默认等级'
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `biz_member_level` WHERE `level_no` = 0 AND `del_flag` = '0');

INSERT INTO `biz_member_level` (
  `level_no`, `level_name`, `level_icon`, `benefits`, `sort_no`, `status`, `del_flag`, `create_by`, `create_time`, `remark`
)
SELECT 1, '黄金会员', NULL, '专属折扣、优先客服、会员活动', 1, '0', '0', 'admin', NOW(), NULL
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM `biz_member_level` WHERE `level_no` = 1 AND `del_flag` = '0');
