using Refit; 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.Website.Clients; public interface IRolesClient { #region Main - CRUD [Get("/actors")] Task>> GetRoleActors([Query] RoleActorFilterQuery? filterQuery = null, [Query] OrderQuery? orderQuery = null, [Query] PagingQuery? pagingQuery = null); [Get("/actors/{id}")] Task> GetRoleActor(Guid id); [Get("/creators")] Task>> GetRoleCreators([Query] RoleCreatorFilterQuery? filterQuery = null, [Query] OrderQuery? orderQuery = null, [Query] PagingQuery? pagingQuery = null); [Get("/creators/{id}")] Task> GetRoleCreator(Guid id); [Post("/actors")] Task> PostRoleActor([Authorize]string token, [Body] RoleActorRequest body); [Post("/creators")] Task> PostRoleCreator([Authorize]string token, [Body] RoleCreatorRequest body); [Put("/actors/{id}")] Task> PutRoleActor([Authorize]string token, Guid id, [Body] RoleActorRequest body); [Put("/creators/{id}")] Task> PutRoleCreator([Authorize]string token, Guid id, [Body] RoleCreatorRequest body); [Delete("/{id}")] Task DeleteRole([Authorize]string token, Guid id); #endregion #region Main - Rating [Get("/{id}/rating")] Task> GetRoleRating(Guid id); [Get("/{id}/rating/{account_id}")] Task> GetRoleUserRating(Guid id, [AliasAs("account_id")] long accountId); [Put("/{id}/rating")] Task PutRoleRating([Authorize]string token, Guid id, [Body] RatingRequest body); [Delete("/{id}/rating")] Task DeleteRoleRating([Authorize]string token, Guid id); #endregion #region ActorTypes [Get("/actors/types")] Task>> GetRoleActorTypes([Query] RoleActorTypeFilterQuery? filterQuery = null, [Query] OrderQuery? orderQuery = null, [Query] PagingQuery? pagingQuery = null); [Get("/actors/types/{role_actor_type_id}")] Task> GetRoleActorType([AliasAs("role_actor_type_id")] short roleActorTypeId); [Post("/actors/types")] Task> PostRoleActorType([Authorize]string token, [Body] RoleActorTypeRequest body); [Delete("/actors/types/{role_actor_type_id}")] Task DeleteRoleActorType([Authorize]string token, [AliasAs("role_actor_type_id")] short roleActorTypeId); #endregion #region CreatorTypes [Get("/creators/types")] Task>> GetRoleCreatorTypes([Query] RoleCreatorTypeFilterQuery? filterQuery = null, [Query] OrderQuery? orderQuery = null, [Query] PagingQuery? pagingQuery = null); [Get("/creators/types/{role_creator_type_id}")] Task> GetRoleCreatorType([AliasAs("role_creator_type_id")] short roleCreatorTypeId); [Post("/creators/types")] Task> PostRoleCreatorType([Authorize]string token, [Body] RoleCreatorTypeRequest body); [Delete("/creators/types/{role_creator_type_id}")] Task DeleteRoleCreatorType([Authorize]string token, [AliasAs("role_creator_type_id")] short roleCreatorTypeId); #endregion }