using IdokladSdk.Models.BankAccount; using IdokladSdk.Models.NumericSequence; using IdokladSdk.Models.ReadOnly.VatRate; using IdokladSdk.Response; using Idoklad.Client; namespace Idoklad.Services; /// /// Supporting registers: bank accounts, VAT rates and numeric (document) sequences. /// public sealed class RegistersService { private readonly IdokladApiAccessor _accessor; public RegistersService(IdokladApiAccessor accessor) => _accessor = accessor; // Bank accounts public async Task> ListBankAccountsAsync(int page, int pageSize, CancellationToken ct) => (await _accessor.Api.BankAccountClient.List().Page(page).PageSize(pageSize).GetAsync(ct)).Unwrap(); public async Task BankAccountDetailAsync(int id, CancellationToken ct) => (await _accessor.Api.BankAccountClient.Detail(id).GetAsync(ct)).Unwrap(); public async Task CreateBankAccountAsync(BankAccountPostModel model, CancellationToken ct) => (await _accessor.Api.BankAccountClient.PostAsync(model, ct)).Unwrap(); public async Task UpdateBankAccountAsync(BankAccountPatchModel model, CancellationToken ct) => (await _accessor.Api.BankAccountClient.UpdateAsync(model, ct)).Unwrap(); public async Task DeleteBankAccountAsync(int id, CancellationToken ct) => (await _accessor.Api.BankAccountClient.DeleteAsync(id, ct)).Unwrap(); // VAT rates (read-only) public async Task> ListVatRatesAsync(int page, int pageSize, CancellationToken ct) => (await _accessor.Api.VatRateClient.List().Page(page).PageSize(pageSize).GetAsync(ct)).Unwrap(); public async Task VatRateDetailAsync(int id, CancellationToken ct) => (await _accessor.Api.VatRateClient.Detail(id).GetAsync(ct)).Unwrap(); // Numeric sequences (read-only list) public async Task> ListNumericSequencesAsync(int page, int pageSize, CancellationToken ct) => (await _accessor.Api.NumericSequenceClient.List().Page(page).PageSize(pageSize).GetAsync(ct)).Unwrap(); }