namespace Oms.Domain.OrdersAggregate.Consts;
///
/// 揽收方向:正向(客户地址→仓库)/ 逆向(仓库→客户地址)。
///
public static class PickupDirectionCodes
{
/// 正向:客户揽收地址 → 仓库
public const string Forward = "forward";
/// 逆向:仓库 → 客户揽收地址
public const string Reverse = "reverse";
public static readonly HashSet All = new(StringComparer.OrdinalIgnoreCase)
{
Forward,
Reverse
};
public static string NormalizeOrDefault(string? direction)
{
var code = string.IsNullOrWhiteSpace(direction) ? Forward : direction.Trim();
if (!All.Contains(code))
{
return Forward;
}
return All.First(x => string.Equals(x, code, StringComparison.OrdinalIgnoreCase));
}
public static string GetDisplayName(string? direction)
{
return NormalizeOrDefault(direction) switch
{
Reverse => "逆向",
_ => "正向"
};
}
}