using IdokladSdk.Models.IssuedInvoice; using IdokladSdk.Response; using Idoklad.Client; namespace Idoklad.Services; /// Issued (outgoing) invoices agenda. public sealed class IssuedInvoicesService { private readonly IdokladApiAccessor _accessor; public IssuedInvoicesService(IdokladApiAccessor accessor) => _accessor = accessor; public Task> ListAsync(int page, int pageSize, string? filter, string? filterType, string? sort, CancellationToken ct) => _accessor.Api.IssuedInvoiceClient.List().GetPageAsync(page, pageSize, filter, filterType, sort, ct); public async Task DetailAsync(int id, CancellationToken ct) => (await _accessor.Api.IssuedInvoiceClient.Detail(id).GetAsync(ct)).Unwrap(); public async Task DefaultAsync(CancellationToken ct) => (await _accessor.Api.IssuedInvoiceClient.DefaultAsync(ct)).Unwrap(); public async Task CreateAsync(IssuedInvoicePostModel model, CancellationToken ct) => (await _accessor.Api.IssuedInvoiceClient.PostAsync(model, ct)).Unwrap(); public async Task UpdateAsync(IssuedInvoicePatchModel model, CancellationToken ct) => (await _accessor.Api.IssuedInvoiceClient.UpdateAsync(model, ct)).Unwrap(); public async Task CopyAsync(int id, CancellationToken ct) => (await _accessor.Api.IssuedInvoiceClient.CopyAsync(id, ct)).Unwrap(); public async Task DeleteAsync(int id, CancellationToken ct) => (await _accessor.Api.IssuedInvoiceClient.DeleteAsync(id, ct)).Unwrap(); }