shoc-backend/SeaHaven.Services/Helpers/WorkOrderBoardSortFields.cs
Arthur Bassi 1eaf9b7c84 feat(work-orders): enrich board search overdue filters and 0-based paging
Align week presets to Mon-Fri, treat types=Other as past-due, expand
text search, whitelist sortBy, and use 0-based paging for advanced
search without breaking 1-based PagedResult consumers.
2026-07-17 10:37:24 -03:00

29 lines
852 B
C#

namespace SeaHaven.Services.Helpers
{
public static class WorkOrderBoardSortFields
{
public static readonly IReadOnlySet<string> Allowed = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
"scheduledDate",
"woNumber",
"dueDate"
};
public static string NormalizeOrThrow(string? sortBy)
{
var field = (sortBy ?? "scheduledDate").Trim();
if (!Allowed.Contains(field))
{
throw new ArgumentException(
"sortBy must be one of: scheduledDate, woNumber, dueDate.");
}
return field.ToLowerInvariant() switch
{
"wonumber" => "woNumber",
"duedate" => "dueDate",
_ => "scheduledDate"
};
}
}
}