namespace Acl.Application; /// The ACL's single operation: open a zaak from a domain payload, /// default-filling the ZGW-mandatory fields (ADR-0003). public sealed class AclService(IZaakGateway gateway, AclDefaults defaults, IClock clock) { public Task OpenZaakAsync(DomainRegistration registration, CancellationToken ct = default) { ArgumentNullException.ThrowIfNull(registration); var request = new ZaakRequest( defaults.Bronorganisatie, defaults.VerantwoordelijkeOrganisatie, defaults.Vertrouwelijkheidaanduiding, defaults.ZaaktypeUrl, clock.Today); return gateway.OpenZaakAsync(request, ct); } }