namespace Acl.Application; /// Port to the ZGW Zaken API. Implemented in Infrastructure — the only /// code that talks to OpenZaak (ADR-0001). public interface IZaakGateway { Task OpenZaakAsync(ZaakRequest request, CancellationToken ct = default); /// /// Set the given zaak to the eindstatus (final statustype) of the supplied zaaktype — /// the ZGW translation of "approve". The gateway resolves which statustype is the eindstatus from /// the catalogus and POSTs a status against the zaak, dated . /// Task SetZaakToEindstatusAsync(Uri zaakUrl, Uri zaaktypeUrl, DateOnly datumStatusGezet, CancellationToken ct = default); /// /// Set the given zaak to the cancellation statustype ("Geannuleerd") and record the /// matching cancellation resultaat ("Vervallen") — the ZGW translation of "the 30-day document term /// lapsed" (S-10c). Distinct from (approval): the gateway /// resolves both the cancellation statustype and resultaattype from the catalogus by their /// omschrijving, POSTs the resultaat then the status, dated . /// Task SetZaakToCancellationStatusAsync(Uri zaakUrl, Uri zaaktypeUrl, DateOnly datumStatusGezet, CancellationToken ct = default); /// Read the zaak's identificatie — the public-safe reference the register shows. /// The Event Subscriber calls this through the ACL rather than reading ZGW itself (§8.1, #78). Task GetZaakIdentificatieAsync(Uri zaakUrl, CancellationToken ct = default); /// /// Store a diploma document (S-10b): create an enkelvoudiginformatieobject in the ZGW /// Documenten API and relate it to the zaak via a zaakinformatieobject. Returns the URL of /// the created informatieobject. /// Task StoreDocumentAsync(DocumentRequest request, CancellationToken ct = default); }