Failing unit tests for the Registration aggregate root: a submission starts in INGEDIEND carrying its bsn, an empty/whitespace/null bsn is rejected, the started process-instance id is remembered, and attaching the zaak the ACL opened records its URL idempotently (a conflicting URL is rejected) while the status stays INGEDIEND. The aggregate is a stub (no-op mutators, empty bsn) so the tests compile and fail on their assertions; the green commit implements the invariants. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 lines
768 B
C#
16 lines
768 B
C#
namespace Big.Domain;
|
|
|
|
/// <summary>The identity of a <see cref="Registration"/> aggregate — opaque, server-assigned,
|
|
/// and distinct from the OpenZaak zaak id (which the projection keys on). A value object so the
|
|
/// id can travel as a Flowable process variable and back without ever being a bare string.</summary>
|
|
public readonly record struct RegistrationId(Guid Value)
|
|
{
|
|
/// <summary>Mint a fresh identity for a newly submitted registration.</summary>
|
|
public static RegistrationId New() => new(Guid.NewGuid());
|
|
|
|
/// <summary>Rehydrate an id carried as a string (e.g. a Flowable process variable).</summary>
|
|
public static RegistrationId Parse(string value) => new(Guid.Parse(value));
|
|
|
|
public override string ToString() => Value.ToString();
|
|
}
|