-- 正在现场 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_auth` (
    `mid`         bigint(20)  NOT NULL AUTO_INCREMENT COMMENT '自增主键',
    `auth_id`     varchar(64) NOT NULL COMMENT '授权ID',
    `store_id`    varchar(64) NOT NULL COMMENT '店铺ID',
    `artist_id`   varchar(64) NOT NULL COMMENT '艺人ID',
    `apply_id`    varchar(64) NOT NULL COMMENT '来源申请ID',
    `expire_at`   datetime    NOT NULL COMMENT '授权截止时间',
    `status`      tinyint(4)  NOT NULL DEFAULT 1 COMMENT '1有效 0失效',
    `created_at`  datetime    NOT NULL COMMENT '创建时间',
    `updated_at`  datetime    NOT NULL COMMENT '更新时间',
    PRIMARY KEY (`mid`),
    UNIQUE KEY `uk_auth_id` (`auth_id`),
    UNIQUE KEY `uk_store_artist` (`store_id`, `artist_id`),
    KEY `idx_expire_at` (`expire_at`),
    KEY `idx_store_status` (`store_id`, `status`)
) 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，可空',
    `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~5推荐位',
    `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='艺人专题商品关联表';
