using Ardalis.Result; using WatchIt.DTO.Models.Controllers.Roles.Role.Query; using WatchIt.DTO.Models.Controllers.Roles.Role.Request; using WatchIt.DTO.Models.Controllers.Roles.Role.Response; using WatchIt.DTO.Models.Controllers.Roles.RoleActorType; using WatchIt.DTO.Models.Controllers.Roles.RoleCreatorType; using WatchIt.DTO.Models.Generics.Rating; using WatchIt.DTO.Query; namespace WatchIt.WebAPI.BusinessLogic.Roles; public interface IRolesBusinessLogic { Task>> GetRoleActors(RoleActorFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery); Task> GetRoleActor(Guid roleId); Task>> GetRoleCreators(RoleCreatorFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery); Task> GetRoleCreator(Guid roleId); Task> PostRoleActor(RoleActorRequest body); Task> PostRoleCreator(RoleCreatorRequest body); Task> PutRoleActor(Guid roleId, RoleActorRequest body); Task> PutRoleCreator(Guid roleId, RoleCreatorRequest body); Task DeleteRole(Guid roleId); Task> GetRoleRating(Guid roleId); Task> GetRoleUserRating(Guid roleId, long accountId); Task PutRoleRating(Guid roleId, RatingRequest body); Task DeleteRoleRating(Guid roleId); Task>> GetRoleActorTypes(RoleActorTypeFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery); Task> GetRoleActorType(short roleActorTypeId); Task> PostRoleActorType(RoleActorTypeRequest body); Task DeleteRoleActorType(short roleActorTypeId); Task>> GetRoleCreatorTypes(RoleCreatorTypeFilterQuery filterQuery, OrderQuery orderQuery, PagingQuery pagingQuery); Task> GetRoleCreatorType(short roleCreatorTypeId); Task> PostRoleCreatorType(RoleCreatorTypeRequest body); Task DeleteRoleCreatorType(short roleCreatorTypeId); }