2026-06-04 15:54:30 +08:00
|
|
|
|
using QYZH.InteractiveMagazine.Models.Common;
|
|
|
|
|
|
using QYZH.InteractiveMagazine.Models.Dto;
|
|
|
|
|
|
using QYZH.InteractiveMagazine.Models.Dto.Pet;
|
|
|
|
|
|
using QYZH.InteractiveMagazine.Models.Entity;
|
|
|
|
|
|
|
|
|
|
|
|
namespace QYZH.InteractiveMagazine.IService;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 宠物服务接口
|
|
|
|
|
|
/// </summary>
|
2026-06-05 18:10:34 +08:00
|
|
|
|
public interface IPetService : IBaseService<UserPet>
|
2026-06-04 15:54:30 +08:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取用户宠物信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="userId">用户Id</param>
|
|
|
|
|
|
/// <returns>宠物信息</returns>
|
|
|
|
|
|
Task<PetOutput?> GetPetByUserIdAsync(long userId);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 为用户创建默认宠物(最低形态、成长值为0、未激活状态)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="userId">用户Id</param>
|
|
|
|
|
|
Task CreateDefaultPetAsync(long userId);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 激活宠物(将状态从 Inactive 改为 Active)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="userId">用户Id</param>
|
|
|
|
|
|
Task ActivatePetAsync(long userId);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 喂养宠物(增加成长值 + 记录喂养记录 + 触发进化检查)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="userId">用户Id</param>
|
|
|
|
|
|
/// <param name="input">喂养输入</param>
|
|
|
|
|
|
/// <returns>喂养结果</returns>
|
|
|
|
|
|
Task<FeedPetOutput> FeedPetAsync(long userId, FeedPetInput input);
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取宠物喂养记录列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="userId">用户Id</param>
|
|
|
|
|
|
/// <param name="petId">宠物Id</param>
|
|
|
|
|
|
/// <returns>喂养记录列表</returns>
|
|
|
|
|
|
Task<PageListModel<FeedingRecordOutput>> GetFeedingRecordsAsync(long userId, long petId, PageQueryModel pageQuery);
|
|
|
|
|
|
}
|