using QYZH.InteractiveMagazine.Models.Dto.CheckIn;
using QYZH.InteractiveMagazine.Models.Entity;
namespace QYZH.InteractiveMagazine.IService;
///
/// 签到服务接口
///
public interface ICheckInService : IBaseService
{
///
/// 用户签到
///
/// 用户Id
/// 签到结果
Task CheckInAsync(long userId);
///
/// 获取用户签到信息(今日状态 + 连续天数 + 最近记录)
///
/// 用户Id
/// 签到信息
Task GetCheckInInfoAsync(long userId);
///
/// 补签(消耗补签卡,补签历史漏签日期)
///
/// 用户Id
/// 补签目标日期
/// 补签结果
Task MakeUpCheckInAsync(long userId, DateTime targetDate);
///
/// 获取用户可补签的日期列表(历史漏签日期)
///
/// 用户Id
/// 往前查看天数(默认30天)
/// 漏签日期列表
Task> GetMissedDatesAsync(long userId, int days = 30);
}