package com.haha.service;

import java.math.BigDecimal;

/**
 * 邀请活动消息通知服务接口
 * 定义邀请活动相关的各类通知方法，支持多种通知渠道扩展
 */
public interface InviteNotificationService {

    /**
     * 发送邀请奖励发放成功通知
     * 当邀请人成功获得奖励（优惠券）时发送通知
     *
     * @param userId      用户ID（邀请人）
     * @param couponName  优惠券名称
     * @param amount      优惠券金额
     */
    void sendRewardSuccessNotification(Long userId, String couponName, BigDecimal amount);

    /**
     * 发送被邀请人注册成功通知（告知邀请人）
     * 当有新用户通过邀请码注册时，通知邀请人
     *
     * @param inviterUserId   邀请人ID
     * @param inviteeNickname 被邀请人昵称
     */
    void sendNewInviteeNotification(Long inviterUserId, String inviteeNickname);

    /**
     * 发送活动即将结束提醒
     * 在活动即将结束时提醒参与用户抓紧时间完成邀请任务
     *
     * @param userId        参与用户ID
     * @param activityName  活动名称
     * @param daysLeft      剩余天数
     */
    void sendActivityEndingReminder(Long userId, String activityName, int daysLeft);
}
