-- 红包功能升级：适用范围外表 / 自动发红包规则 / 发放日志 / 到账提示标记
-- 执行前请确认线上库无同名表；ALTER 若字段已存在请跳过对应语句

-- 1. 红包适用范围（一对一关联 xhHb，无记录=全部商品适用）
CREATE TABLE IF NOT EXISTS `xhHbScope` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `hbId` int(11) NOT NULL DEFAULT 0 COMMENT 'xhHb.id',
  `scopeType` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1全部商品 2指定花束分类 3指定花束商品',
  `scopeValue` varchar(2000) NOT NULL DEFAULT '' COMMENT 'scopeType=2/3时逗号分隔id，=1时为空',
  `specialApplicable` tinyint(4) NOT NULL DEFAULT 1 COMMENT '特价及活动商品是否适用：0否 1是',
  `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_hbId` (`hbId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='红包适用范围';

-- 2. 自动发红包规则（每门店每种类型一条）
CREATE TABLE IF NOT EXISTS `xhHbAutoRule` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `shopId` int(11) NOT NULL DEFAULT 0 COMMENT '门店id',
  `mainId` int(11) NOT NULL DEFAULT 0 COMMENT '中央id',
  `type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1新客 2受邀新客 3沉睡召回 4会员日',
  `status` tinyint(4) NOT NULL DEFAULT 0 COMMENT '0关闭 1开启',
  `rules` text COMMENT '红包配置JSON，结构同充值送红包rules',
  `scopeType` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1全部商品 2指定分类 3指定商品',
  `scopeValue` varchar(2000) NOT NULL DEFAULT '' COMMENT '分类/商品id逗号分隔',
  `specialApplicable` tinyint(4) NOT NULL DEFAULT 1 COMMENT '特价及活动商品是否适用',
  `extra` text COMMENT '类型专属JSON：沉睡{unOrderDays}；会员日{sendDay,sendTime,target}',
  `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_shop_type` (`shopId`,`type`),
  KEY `idx_type_status` (`type`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自动发红包规则';

-- 3. 自动发放日志（沉睡冷却 / 会员日每月去重）
CREATE TABLE IF NOT EXISTS `xhHbAutoSendLog` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ruleId` int(11) NOT NULL DEFAULT 0 COMMENT 'xhHbAutoRule.id',
  `shopId` int(11) NOT NULL DEFAULT 0 COMMENT '门店id',
  `customId` int(11) NOT NULL DEFAULT 0 COMMENT '客户id',
  `cycleTag` varchar(32) NOT NULL DEFAULT '' COMMENT '会员日用年月如202608；沉睡可空',
  `sendTime` datetime NOT NULL COMMENT '发放时间',
  `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_rule_custom` (`ruleId`,`customId`),
  KEY `idx_rule_cycle` (`ruleId`,`customId`,`cycleTag`),
  KEY `idx_shop_send` (`shopId`,`sendTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自动发红包日志';

-- 4. 发放流水：到账提示去重
ALTER TABLE `xhHbManage`
  ADD COLUMN `notified` tinyint(4) NOT NULL DEFAULT 0 COMMENT 'mall到账提示：0未提示 1已提示' AFTER `cancelTime`,
  ADD COLUMN `notifiedAt` datetime DEFAULT NULL COMMENT '到账提示时间' AFTER `notified`;

-- 5. getType 扩展：0新客 / 1赠送 / 2充值送 / 3受邀新客 / 4沉睡召回 / 5会员日
ALTER TABLE xhHb modify COLUMN `getType` tinyint(4) NOT NULL DEFAULT '0' COMMENT '取得方式 0新人领取 1门店发放 2充值赠送 3受邀新客 4沉睡召回 5会员日';
