using System.Collections.Generic; using System.Linq; using YLErp.DBModels; namespace YLErp.Modules.SwapModule.Margin; /// /// 保证金计息模式(mode 5 初始预付金 / mode 6 追加预付金)的统一判断口径。 /// /// 现状(待收敛):同一集合 {初始预付金, 追加预付金} 在代码里复制了至少 6 次—— /// ConsTrade.InterestMarginModels(框架级) /// SwapEodPositionService.marginTypes(实例字段) /// SwapEodPositionService.premiumModes(局部变量) /// SwapEventEmailService.marginTypes /// EodClientBalanceCalc.marginTypes /// ClientBalanceUtility.marginTypes /// 任何一处漏改(如新增保证金形态)都会导致口径分裂。本类收敛到单一来源。 /// /// 注意:这里的"保证金 mode"是现有系统把保证金错误建模为计息腿的历史遗留。 /// 按 Margin 限界上下文的设计方向,未来保证金不应用 InterestMode 标识, /// 但在历史代码完全迁出前,需要一个统一判断点。 /// public static class MarginModes { /// 所有属于保证金的 InterestMode(初始预付金 / 追加预付金)。 public static readonly IReadOnlyCollection All = new HashSet { (int)InterestModeEnum.初始预付金, (int)InterestModeEnum.追加预付金, }; /// 判断 mode 是否属于保证金。 public static bool Contains(int interestMode) => All.Contains(interestMode); }