shoc-backend/SeaHaven.Services/Helpers/WorkOrderUpliftAllowance.cs
arthur.bassi 4c15669aff fix(work-orders): enforce SH-196 cumulative allowance and one pending per WO
Auto-approval now uses the WO-scoped $500/$5,000 Emergency cap instead of dispatch NTE, rejects a second open request across dispatches, and cancelling a WO withdraws pending uplifts with audit.
2026-08-14 10:36:35 -03:00

19 lines
640 B
C#

using Data.SeaHavenIndustries.Enums;
namespace SeaHaven.Services.Helpers
{
public static class WorkOrderUpliftAllowance
{
public const decimal StandardCapUsd = 500m;
public const decimal EmergencyCapUsd = 5000m;
public static decimal CapFor(WorkOrderType? type) =>
type == WorkOrderType.Emergency ? EmergencyCapUsd : StandardCapUsd;
public static decimal Remaining(decimal cap, decimal consumedAutoApproved) =>
Math.Max(0m, cap - consumedAutoApproved);
public static bool AutoApproves(decimal amount, decimal remaining) =>
amount <= remaining;
}
}