using LctMonolith.Models.Database; using LctMonolith.Models.DTO; namespace GamificationService.Services.Interfaces; public interface IMissionService { Task GetMissionByIdAsync(Guid missionId); Task> GetMissionsByCategoryAsync(Guid categoryId); Task> GetAvailableMissionsForPlayerAsync(Guid playerId); Task> GetChildMissionsAsync(Guid parentMissionId); Task CreateMissionAsync(Mission mission); Task UpdateMissionAsync(Mission mission); Task DeleteMissionAsync(Guid missionId); Task IsMissionAvailableForPlayerAsync(Guid missionId, Guid playerId); Task CompleteMissionAsync(Guid missionId, Guid playerId, object? missionProof = null); }