using HoneyBox.Model.Models.Sign;

namespace HoneyBox.Core.Interfaces;

/// <summary>
/// 签到服务接口
/// </summary>
public interface ISignService
{
    /// <summary>
    /// 获取签到信息（需要登录）
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <returns>签到信息</returns>
    Task<SignInfoResponse> GetSignInfoAsync(int userId);

    /// <summary>
    /// 获取签到配置（无需登录）
    /// </summary>
    /// <returns>签到配置信息</returns>
    Task<SignInfoResponse> GetSignConfigAsync();

    /// <summary>
    /// 执行签到
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <returns>签到结果</returns>
    Task<SignResultResponse> DoSignAsync(int userId);
}
