using Refit; using WatchIt.DTO.Models.Controllers.People.Person; using WatchIt.DTO.Models.Controllers.People.Person.Query; using WatchIt.DTO.Models.Generics.Image; using WatchIt.DTO.Models.Generics.Rating; using WatchIt.DTO.Query; namespace WatchIt.Website.Clients; public interface IPeopleClient { #region Main [Get("/")] Task>> GetPeople([Query] PersonFilterQuery? filterQuery = null, [Query] OrderQuery? orderQuery = null, [Query] PagingQuery? pagingQuery = null, [Query][AliasAs("include_pictures")] bool includePictures = false); [Get("/{id}")] Task> GetPerson(long id, [Query][AliasAs("include_pictures")] bool includePictures = false); [Post("/")] Task> PostPerson([Authorize]string token, [Body] PersonRequest body); [Put("/{id}")] Task> PutPerson([Authorize]string token, long id, [Body] PersonRequest body); [Delete("/{id}")] Task DeletePerson([Authorize]string token, long id); #endregion #region Rating [Get("/{id}/rating")] Task> GetPersonRating(long id); [Get("/{id}/rating/{account_id}")] Task> GetPersonUserRating(long id, [AliasAs("account_id")] long accountId); #endregion #region View Count [Put("/{id}/view_count")] Task PutPeopleViewCount(long id); #endregion #region Picture [Get("/{id}/picture")] Task> GetPersonPicture(long id); [Put("/{id}/picture")] Task> PutPersonPicture([Authorize]string token, long id, [Body] ImageRequest body); [Delete("/{id}/picture")] Task DeletePersonPicture([Authorize]string token, long id); #endregion }