using System.Text.Json.Nodes; using Csob.Client; using Csob.Models; namespace Csob.Services; /// PISP – standing-order initiation, detail/status, cancellation and the sign (SCA) flow. public sealed class StandingOrdersService { private readonly CsobApiAccessor _accessor; public StandingOrdersService(CsobApiAccessor accessor) => _accessor = accessor; public Task InitiateAsync(StandingOrderInitiationRequest request, CancellationToken ct) => _accessor.Client.PostAsync(CsobApiPaths.StandingOrders, request, ct); public Task DetailAsync(string id, CancellationToken ct) => _accessor.Client.GetAsync(CsobApiPaths.StandingOrder(id), null, ct); public Task StatusAsync(string id, CancellationToken ct) => _accessor.Client.GetAsync(CsobApiPaths.StandingOrderStatus(id), null, ct); public Task CancelAsync(string id, CancellationToken ct) => _accessor.Client.DeleteAsync(CsobApiPaths.StandingOrder(id), ct); public Task StartSignAsync(string id, string signId, JsonNode? body, CancellationToken ct) => _accessor.Client.PostAsync(CsobApiPaths.StandingOrderSign(id, signId), body, ct); public Task SignStatusAsync(string id, string signId, CancellationToken ct) => _accessor.Client.GetAsync(CsobApiPaths.StandingOrderSign(id, signId), null, ct); public Task FinalizeSignAsync(string id, string signId, JsonNode? body, CancellationToken ct) => _accessor.Client.PutAsync(CsobApiPaths.StandingOrderSign(id, signId), body, ct); }