namespace Big.Application; /// One row of the behandelaar's werkbak: a registration awaiting beoordeling, with the /// public-facing reference (its id) plus the bsn and status a behandelaar needs to triage it. public sealed record WerkbakItem(string RegistrationId, string Bsn, string Status); /// /// The werkbak query (S-12c): the registrations awaiting a behandelaar's beoordeling. It reads the /// open Beoordelen tasks from the workflow engine (§8.2, via ) — /// the authoritative set of work items — and enriches each with its aggregate (bsn + status). A task /// whose registration the domain doesn't know is skipped rather than invented. /// public sealed class Werkbak(IUserTaskClient tasks, IRegistrationStore store) { public async Task> GetAsync(CancellationToken ct = default) { var open = await tasks.GetOpenBeoordelingenAsync(ct); var items = new List(open.Count); foreach (var task in open) { var registration = await store.GetAsync(task.RegistrationId, ct); if (registration is null) continue; items.Add(new WerkbakItem( registration.Id.ToString(), registration.Bsn, registration.Status.ToString())); } return items; } }