namespace Acl.Application;
///
/// Port to the Objecten API, which holds the authoritative register record (S-19a, ADR-0028).
/// Implemented in Infrastructure — as with ZGW, the ACL is the only code that talks to the
/// upstream Common Ground module (§8.1).
///
public interface IRegisterRecordGateway
{
///
/// Write the register record for a registration, creating it if absent and updating it if it
/// already exists. Idempotent on : a replayed approval updates
/// the existing object instead of creating a second one (§8.6).
///
Task UpsertAsync(RegisterRecord record, CancellationToken ct = default);
}
///
/// The public-safe register record, matching the RegisterRecord objecttype schema registered
/// in S-18c (ADR-0027). No bsn, no name — the register is world-readable.
///
public sealed record RegisterRecord(string Id, string Status, string? Reference);
/// The register statuses the RegisterRecord objecttype's schema allows (ADR-0027).
public static class RegisterRecordStatus
{
public const string Ingediend = "INGEDIEND";
public const string Ingeschreven = "INGESCHREVEN";
}