-- 正在现场 v1.8.0 商城艺人专题
-- 关联开发文档：docu/zhengzai-v1.8.0-艺人专题-开发文档.md

-- 艺人关联申请表
CREATE TABLE `goblin_artist_auth_apply` (
    `mid`              bigint(20)   NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `apply_id`         varchar(64)  NOT NULL COMMENT '申请ID',
    `store_id`         varchar(64)  NOT NULL COMMENT '申请店铺ID',
    `artist_id`        varchar(64)  NOT NULL COMMENT '申请关联艺人ID，对应 kylin_artist.artist_id',
    `attachment_urls`  text         NOT NULL COMMENT '申请资料图片URL列表，JSON数组',
    `status`           tinyint(4)   NOT NULL DEFAULT 0 COMMENT '0待审核 1已通过 2已拒绝 3已撤销',
    `reviewer_id`      varchar(64)  DEFAULT NULL COMMENT '审核人ID',
    `reviewer_name`    varchar(100) DEFAULT NULL COMMENT '审核人名称',
    `review_time`      datetime     DEFAULT NULL COMMENT '审核时间',
    `review_remark`    varchar(500) DEFAULT NULL COMMENT '通过备注',
    `reject_reason`    varchar(500) DEFAULT NULL COMMENT '驳回原因',
    `auth_expire_at`   datetime     DEFAULT NULL COMMENT '授权截止时间（通过时写入）',
    `created_at`       datetime     NOT NULL COMMENT '申请时间',
    `updated_at`       datetime     NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`mid`),
    UNIQUE KEY `uk_apply_id` (`apply_id`),
    KEY `idx_store_status` (`store_id`, `status`),
    KEY `idx_artist_status` (`artist_id`, `status`),
    KEY `idx_created_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='艺人关联申请表';

-- 艺人专题表
CREATE TABLE `goblin_artist_topic` (
    `mid`                 bigint(20)   NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `topic_id`            varchar(64)  NOT NULL COMMENT '专题ID',
    `store_id`            varchar(64)  NOT NULL COMMENT '所属店铺ID',
    `topic_name`          varchar(100) NOT NULL COMMENT '专题名称',
    `artist_id`           varchar(64)  DEFAULT NULL COMMENT '关联艺人ID，可空',
    `custom_avatar_url`   varchar(500) DEFAULT NULL COMMENT '未关联艺人时的自定义头像',
    `template_type`       tinyint(4)   NOT NULL DEFAULT 1 COMMENT '1双列网格 2单列列表',
    `banner_url`          varchar(500) DEFAULT NULL COMMENT '专题banner',
    `banner_height`       int(11)      NOT NULL DEFAULT 240 COMMENT 'banner高度px',
    `on_sale_start`       datetime     DEFAULT NULL COMMENT '上架区间开始',
    `on_sale_end`         datetime     DEFAULT NULL COMMENT '上架区间结束',
    `status`              tinyint(4)   NOT NULL DEFAULT 0 COMMENT '0待上架 1已上架 2已下架',
    `sort`                int(11)      NOT NULL DEFAULT 0 COMMENT 'Admin排序值，越小越靠前',
    `recommend_position`  tinyint(4)   NOT NULL DEFAULT 0 COMMENT '0无推荐 1~10推荐位',
    `tag`                 varchar(32)  DEFAULT NULL COMMENT '专题标签，如HOT/上新',
    `del_flg`             tinyint(4)   NOT NULL DEFAULT 0 COMMENT '0正常 1删除',
    `created_at`          datetime     NOT NULL COMMENT '创建时间',
    `updated_at`          datetime     NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`mid`),
    UNIQUE KEY `uk_topic_id` (`topic_id`),
    KEY `idx_store_status` (`store_id`, `status`, `del_flg`),
    KEY `idx_sort` (`sort`, `created_at`),
    KEY `idx_recommend` (`recommend_position`),
    KEY `idx_artist_id` (`artist_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='艺人专题表';

-- 艺人专题商品关联表
CREATE TABLE `goblin_artist_topic_goods` (
    `mid`          bigint(20)  NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `relation_id`  varchar(64) NOT NULL COMMENT '关联ID',
    `topic_id`     varchar(64) NOT NULL COMMENT '专题ID',
    `spu_id`       varchar(64) NOT NULL COMMENT '本店商品SPU ID',
    `sort`         int(11)     NOT NULL DEFAULT 0 COMMENT '专题内排序，越小越靠前',
    `created_at`   datetime    NOT NULL COMMENT '创建时间',
    `updated_at`   datetime    NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`mid`),
    UNIQUE KEY `uk_relation_id` (`relation_id`),
    UNIQUE KEY `uk_topic_spu` (`topic_id`, `spu_id`),
    KEY `idx_topic_sort` (`topic_id`, `sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='艺人专题商品关联表';


-- ----------------------------
-- Admin 菜单权限（线上 prod，基于 prod_sys_menu.sql）
-- 执行前确认：SELECT MAX(menu_id) FROM sys_menu; 当前导出最大为 2218
-- parent：2000=正在映画
-- ----------------------------
INSERT INTO `sys_menu` VALUES (2219, '艺人管理', 2000, 4, '#', 'menuItem', 'M', '0', '1', NULL, 'fa fa-address-book', 'admin', '2026-08-14 14:30:00', '', NULL, '艺人授权审核/专题管理目录');
INSERT INTO `sys_menu` VALUES (2220, '艺人授权审核', 2219, 1, 'goblin/artist/auth', 'menuItem', 'C', '0', '1', 'goblin:artist:auth:list', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2221, '艺人专题管理', 2219, 2, 'goblin/artist/topic', 'menuItem', 'C', '0', '1', 'goblin:artist:topic:list', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');

-- 艺人授权审核按钮（parent=2220）
INSERT INTO `sys_menu` VALUES (2222, '申请列表', 2220, 1, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:auth:list', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2223, '申请详情', 2220, 2, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:auth:info', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2224, '审核通过', 2220, 3, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:auth:approve', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2225, '审核驳回', 2220, 4, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:auth:reject', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');

-- 艺人专题管理按钮（parent=2221）
INSERT INTO `sys_menu` VALUES (2226, '专题列表', 2221, 1, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:list', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2227, '专题详情', 2221, 2, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:info', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2228, '推荐设置', 2221, 3, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:recommend', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2229, '设置标签', 2221, 4, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:tag', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2230, '上下架', 2221, 5, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:status', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2231, '设置排序', 2221, 6, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:sort', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');
INSERT INTO `sys_menu` VALUES (2232, '删除专题', 2221, 7, '#', 'menuItem', 'F', '0', '1', 'goblin:artist:topic:delete', '#', 'admin', '2026-08-14 14:30:00', '', NULL, '');

-- TODO 再将“演出管理”下的”艺人管理“菜单移动到新增的“艺人管理”目录下

-- ----------------------------
-- 已建库增量：未关联艺人时的自定义头像
-- ----------------------------
-- ALTER TABLE `goblin_artist_topic`
--     ADD COLUMN `custom_avatar_url` varchar(500) DEFAULT NULL COMMENT '未关联艺人时的自定义头像' AFTER `artist_id`;
