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; /// /// 宠物服务接口 /// public interface IPetService : IBaseService { /// /// 获取用户宠物信息 /// /// 用户Id /// 宠物信息 Task GetPetByUserIdAsync(long userId); /// /// 为用户创建默认宠物(最低形态、成长值为0、未激活状态) /// /// 用户Id Task CreateDefaultPetAsync(long userId); /// /// 激活宠物(将状态从 Inactive 改为 Active) /// /// 用户Id Task ActivatePetAsync(long userId); /// /// 喂养宠物(增加成长值 + 记录喂养记录 + 触发进化检查) /// /// 用户Id /// 喂养输入 /// 喂养结果 Task FeedPetAsync(long userId, FeedPetInput input); /// /// 获取宠物喂养记录列表 /// /// 用户Id /// 宠物Id /// 喂养记录列表 Task> GetFeedingRecordsAsync(long userId, long petId, PageQueryModel pageQuery); // ==================== 后台管理:宠物模板 ==================== /// /// 创建宠物模板 /// Task CreateTemplateAsync(PetTemplateInput input); /// /// 更新宠物模板 /// Task UpdateTemplateAsync(long id, PetTemplateInput input); /// /// 删除宠物模板(软删除) /// Task DeleteTemplateAsync(long id); /// /// 获取单个宠物模板 /// Task GetTemplateByIdAsync(long id); /// /// 分页查询宠物模板列表 /// Task> GetTemplatesAsync(PetTemplateQueryInput input); /// /// 更新模板状态(启用/禁用) /// Task UpdateTemplateStatusAsync(long id); // ==================== 后台管理:进化链 ==================== /// /// 创建进化阶段 /// Task CreateEvolutionAsync(PetEvolutionInput input); /// /// 更新进化阶段 /// Task UpdateEvolutionAsync(long id, PetEvolutionInput input); /// /// 删除进化阶段(软删除) /// Task DeleteEvolutionAsync(long id); /// /// 获取单个进化阶段 /// Task GetEvolutionByIdAsync(long id); /// /// 分页查询进化阶段列表 /// Task> GetEvolutionsAsync(PetEvolutionQueryInput input); // ==================== 后台管理:皮肤 ==================== /// /// 创建皮肤 /// Task CreateSkinAsync(PetSkinInput input); /// /// 更新皮肤 /// Task UpdateSkinAsync(long id, PetSkinInput input); /// /// 删除皮肤(软删除) /// Task DeleteSkinAsync(long id); /// /// 获取单个皮肤(含图片列表) /// Task GetSkinByIdAsync(long id); /// /// 分页查询皮肤列表 /// Task> GetSkinsAsync(PetSkinQueryInput input); // ==================== 后台管理:皮肤图片 ==================== /// /// 创建皮肤图片 /// Task CreateSkinImageAsync(PetSkinImageInput input); /// /// 更新皮肤图片 /// Task UpdateSkinImageAsync(long id, PetSkinImageInput input); /// /// 删除皮肤图片(软删除) /// Task DeleteSkinImageAsync(long id); /// /// 获取指定皮肤的所有图片 /// Task> GetSkinImagesBySkinIdAsync(long skinId); // ==================== 便捷查询接口 ==================== /// /// 根据模板Id获取进化链列表(非分页,按StageLevel排序) /// Task> GetEvolutionsByTemplateIdAsync(long templateId); /// /// 根据模板Id获取皮肤列表(非分页,按SortOrder排序) /// Task> GetSkinsByTemplateIdAsync(long templateId); /// /// 根据皮肤Id获取各阶段图片列表(按进化阶段分组,含阶段基本信息) /// Task> GetSkinImagesGroupedBySkinIdAsync(long skinId); }