-- ============================================
-- v7: 专属充值优惠活动 + 线下充值
-- ============================================

-- 1. WalletDetail 新增字段
ALTER TABLE `t_wallet_detail`
    ADD COLUMN `source` VARCHAR(16) DEFAULT 'WX_PAY' COMMENT '来源: WX_PAY-微信支付, MANUAL-线下充值'
    AFTER `status`;

ALTER TABLE `t_wallet_detail`
    ADD COLUMN `promotion_id` BIGINT DEFAULT NULL COMMENT '关联优惠活动ID'
    AFTER `source`;

-- 2. 创建专属充值优惠活动表
CREATE TABLE IF NOT EXISTS `t_recharge_promotion` (
    `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `company_id` BIGINT DEFAULT NULL COMMENT '公司ID',
    `title` VARCHAR(128) NOT NULL COMMENT '活动标题',
    `recharge_amount` INT NOT NULL COMMENT '充值金额（分）',
    `grants_amount` INT NOT NULL DEFAULT 0 COMMENT '赠送金额（分）',
    `target_user_ids` TEXT DEFAULT NULL COMMENT '目标用户ID列表（JSON数组），NULL=不限制',
    `target_mode` TINYINT NOT NULL DEFAULT 1 COMMENT '目标模式: 1=所有人, 2=指定用户',
    `start_time` DATETIME NOT NULL COMMENT '活动开始时间',
    `end_time` DATETIME NOT NULL COMMENT '活动结束时间',
    `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态: 0=禁用, 1=启用',
    `token` VARCHAR(32) NOT NULL COMMENT '二维码场景值（唯一标识）',
    `qr_code_url` VARCHAR(512) DEFAULT NULL COMMENT '二维码图片URL',
    `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`),
    UNIQUE KEY `uk_token` (`token`),
    KEY `idx_status_time` (`status`, `start_time`, `end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='专属充值优惠活动表';

-- 3. 添加权限
INSERT IGNORE INTO `t_permission` (`name`, `value`, `pid`, `weight`) VALUES
('优惠活动管理', 'promotion.list', 0, 1),
('优惠活动新增', 'promotion.add', 0, 2),
('优惠活动修改', 'promotion.modify', 0, 3),
('优惠活动删除', 'promotion.remove', 0, 4),
('线下充值', 'offlineRecharge', 0, 5);
