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);
}