using YLErp.Enums;
namespace YLErp.DBModels
{
///
/// 保证金配置期限常量定义(利率债TRS)
///
public static class ConsMarginTerm
{
///
/// 允许配置期限档(SpanConfig.BondTerm)的标的资产类型标志位。
/// 区间追保结构"按资产类型分类"时,仅这些类型允许设置非空期限档;
/// 仅含 利率债(TBonds=1<<4=16)。
/// ETF 不分期限档(2026-08-27 业务裁定:ETF 没有期限概念,
/// 此前的 可转债 ETF/科创债 ETF 分档白名单 TermTierEnabledEtfKinds 已移除,如需恢复查 git 历史)。
///
public static readonly UnderlyingTypeEnum[] TermTierEnabledUnderlyingTypes =
{
UnderlyingTypeEnum.TBonds
};
///
/// 5年以下(同时也是兜底默认期限)
///
public const string UnderFiveYear = "<5y";
///
/// 5年-10年
///
public const string FiveToTenYear = "5y-10y";
///
/// 10年-30年
///
public const string TenToThirtyYear = "10y-30y";
///
/// 30年以上
///
public const string OverThirtyYear = ">30y";
///
/// 所有允许的期限值
///
public static readonly List AllowedTerms = new List
{
UnderFiveYear,
FiveToTenYear,
TenToThirtyYear,
OverThirtyYear
};
///
/// 验证期限是否有效
///
public static bool IsValidTerm(string term)
{
return AllowedTerms.Contains(term ?? string.Empty);
}
///
/// 获取期限的显示名称(与设置页 bondTermLabel 同口径的开闭区间文案:≤5y / (5y-10y] / (10y-30y] / >30y;空=全部兜底档)
///
public static string GetDisplayName(string term)
{
return term switch
{
UnderFiveYear => "≤5y",
FiveToTenYear => "(5y-10y]",
TenToThirtyYear => "(10y-30y]",
OverThirtyYear => ">30y",
_ => string.IsNullOrEmpty(term) ? "全部" : term
};
}
}
}