-- 主播端与企业端升级 v3 数据库迁移

-- 1. 品类二级类别
ALTER TABLE `category` ADD COLUMN `parent_id` INT NULL DEFAULT NULL COMMENT '父级品类ID，NULL为一级品类' AFTER `company_id`;
CREATE INDEX `idx_category_parent_id` ON `category` (`parent_id`);

-- 2. 商品二级类别
ALTER TABLE `goods` ADD COLUMN `sub_category_id` INT NULL DEFAULT NULL COMMENT '二级品类ID，可为空' AFTER `category_id`;
CREATE INDEX `idx_goods_sub_category_id` ON `goods` (`sub_category_id`);

-- 3. 主播端页面配置
ALTER TABLE `web_param` ADD COLUMN `anchor_param` TEXT NULL COMMENT '主播端index_3页面配置JSON' AFTER `new_param`;

-- 4. 预选订单主表
CREATE TABLE IF NOT EXISTS `preselect_order` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_no` VARCHAR(20) NOT NULL COMMENT '订单编号 yyyyMMddHHmm+3位序列',
  `company_id` INT NOT NULL COMMENT '企业编码',
  `anchor_user_id` INT NOT NULL COMMENT '主播用户ID',
  `anchor_username` VARCHAR(100) NULL COMMENT '主播账号',
  `user_budget` DECIMAL(12,2) NULL DEFAULT 0 COMMENT '客户预算',
  `category_count` INT NULL DEFAULT 0 COMMENT '品类数量',
  `goods_count` INT NULL DEFAULT 0 COMMENT '商品数量',
  `total_zd_price` DECIMAL(12,2) NULL DEFAULT 0 COMMENT '旗舰价合计',
  `total_price` DECIMAL(12,2) NULL DEFAULT 0 COMMENT '指导价合计',
  `session_create_time` DATETIME NULL COMMENT '页面会话创建时间',
  `create_time` DATETIME NULL COMMENT '创建时间',
  `submit_time` DATETIME NULL COMMENT '提交时间',
  `duration_seconds` INT NULL DEFAULT 0 COMMENT '创建时长(秒)',
  `creator` INT NULL COMMENT '创建人',
  `editor` INT NULL COMMENT '更新人',
  `edit_date` DATETIME NULL COMMENT '更新时间',
  `isdeleted` INT NOT NULL DEFAULT 0 COMMENT '是否删除0否1是',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_order_no` (`order_no`),
  KEY `idx_company_id` (`company_id`),
  KEY `idx_submit_time` (`submit_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预选订单主表';

-- 5. 预选订单明细表
CREATE TABLE IF NOT EXISTS `preselect_order_item` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '主键',
  `order_id` INT NOT NULL COMMENT '订单ID',
  `sort_num` INT NOT NULL DEFAULT 0 COMMENT '序号',
  `category_id` INT NULL COMMENT '一级品类ID',
  `category_name` VARCHAR(100) NULL COMMENT '品类名称',
  `sub_category_id` INT NULL COMMENT '二级品类ID',
  `sub_category_name` VARCHAR(100) NULL COMMENT '二级品类名称',
  `goods_id` INT NULL COMMENT '商品ID',
  `goods_name` VARCHAR(200) NULL COMMENT '产品型号',
  `zd_price` DECIMAL(12,2) NULL COMMENT '旗舰价',
  `price` DECIMAL(12,2) NULL COMMENT '指导价',
  `isdeleted` INT NOT NULL DEFAULT 0 COMMENT '是否删除0否1是',
  PRIMARY KEY (`id`),
  KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预选订单明细表';

-- 6. 订单号序列表（按分钟桶自增）
CREATE TABLE IF NOT EXISTS `preselect_order_seq` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `seq_key` VARCHAR(20) NOT NULL COMMENT 'yyyyMMddHHmm',
  `seq_val` INT NOT NULL DEFAULT 0 COMMENT '当前序列值',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_seq_key` (`seq_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单号序列表';
