using AsbCloudApp.Data;
using Refit;

namespace AsbCloudWebApi.IntegrationTests.Clients;

public interface IAdminDepositClient
{
   private const string BaseRoute = "/api/admin/deposit";

   [Post(BaseRoute)]
   Task<IApiResponse<int>> InsertAsync([Body] DepositBaseDto deposit);

   [Post($"{BaseRoute}/range")]
   Task<IApiResponse<int>> InsertRangeAsync([Body] IEnumerable<DepositBaseDto> deposits);

   [Put($"{BaseRoute}")]
   Task<IApiResponse<int>> UpdateAsync([Body] DepositBaseDto deposit);

   [Get(BaseRoute + "/{id}")]
   Task<IApiResponse<DepositBaseDto>> GetOrDefaultAsync(int id);

   [Get(BaseRoute)]
   Task<IApiResponse<IEnumerable<DepositBaseDto>>> GetAllAsync();
   
   [Delete(BaseRoute + "/{id}")]
   Task<IApiResponse<int>> DeleteAsync(int id);
}