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