namespace Bff.Api;
///
/// The public view of the read projection: filters rows by the openbaar search term and maps each to
/// a public-safe (only id + status — bsn/naam never leave the
/// BFF). Pure so it is unit- and mutation-tested directly (ADR-0010).
///
public static class OpenbaarProjection
{
public static IReadOnlyList PublicView(IReadOnlyList entries, string? q)
{
var filtered = string.IsNullOrWhiteSpace(q)
? entries
: entries.Where(e =>
e.Id.Contains(q, StringComparison.OrdinalIgnoreCase) ||
(e.Reference?.Contains(q, StringComparison.OrdinalIgnoreCase) ?? false));
return [.. filtered.Select(e => new OpenbaarEntry(e.Id, e.Status, e.Reference))];
}
}