using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; using YLErp.Helpers; namespace YLErp.DBModels { /// /// 框架合约交易要素簿记表 /// [Table("trade_extend")] public class trade_extend { /// /// 交易id 主键 /// [Key,DatabaseGenerated(DatabaseGeneratedOption.None)] [DisplayName("交易id")] [DataChange] public int TradeId { get; set; } /// /// 交易扩展元素JSON /// [DisplayName("交易扩展元素JSON")] [DataChange] public string ExtendJson { get; set; } /// /// 用于公司定制的扩展JSON /// [DisplayName("用于公司定制的扩展JSON")] [DataChange] public string CompanyJson { get; set; } /// /// 交易要素扩展对象 /// [NotMapped] public TradeExtendJson ExtendObj { get { if (string.IsNullOrEmpty(ExtendJson)) { return new TradeExtendJson(); } return JsonConvert.DeserializeObject(ExtendJson); } } public trade_extend Clone() { return (trade_extend)MemberwiseClone(); } } /// /// 交易要素扩展Json /// public class TradeExtendJson { /// /// 流水簿记模式 0:否,1:先进先出,2:加权平均 /// public int FlowBookMode { get; set; } /// /// 浮动收益年化 /// public bool FloatingPnlAnnualized { get; set; } /// /// 是否收取开仓费 /// public bool NeedOpenFee { get; set; } /// /// 收费类型 0:按手数收费,1:按份数收费 /// public int OpenFeeType { get; set; } /// /// 年化天数 /// public int AnnualDays { get; set; } = 365; /// /// 计息方式 00:不算头不算尾,01:不算头算尾,10:算头不算尾,11:算头算尾,缺省值:11 /// public string InterestCalcMode { get; set; } = "11"; /// ///多空组合浮动端 收取方向 1:收取,2:支付 /// public int Direction { get; set; } /// /// 结算规则 0 T+0 1 T+1 /// public int SettlementRules { get; set; } = 0; /// /// 派息金额支付日 0到期结算日 1派息日+0 2派息日+1 3派息日+2 /// public int DividendPayDate { get; set; } = 1; } }