using Yi.Framework.AiHub.Application.Contracts.Dtos.CardFlip;

namespace Yi.Framework.AiHub.Application.Contracts.IServices;

/// <summary>
/// 翻牌服务接口
/// </summary>
public interface ICardFlipService
{
    /// <summary>
    /// 获取本周翻牌任务状态
    /// </summary>
    /// <returns></returns>
    Task<CardFlipStatusOutput> GetWeeklyTaskStatusAsync();

    /// <summary>
    /// 翻牌
    /// </summary>
    /// <param name="input">翻牌输入</param>
    /// <returns></returns>
    Task<FlipCardOutput> FlipCardAsync(FlipCardInput input);

    /// <summary>
    /// 使用邀请码解锁翻牌次数
    /// </summary>
    /// <param name="input">邀请码输入</param>
    /// <returns></returns>
    Task UseInviteCodeAsync(UseInviteCodeInput input);

    /// <summary>
    /// 获取我的邀请码信息
    /// </summary>
    /// <returns></returns>
    Task<InviteCodeOutput> GetMyInviteCodeAsync();

    /// <summary>
    /// 生成我的邀请码（如果没有）
    /// </summary>
    /// <returns></returns>
    Task<string> GenerateMyInviteCodeAsync();
}
