using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ComponentModel; using System.ComponentModel.DataAnnotations.Schema; using YLErp.Helpers; using Newtonsoft.Json; using YLErp.Models; namespace YLErp.DBModels { [Table("swap_flow_event")] public class swap_flow_event: DBModelBaseV2 { /// /// 事件日期 /// [DisplayName("事件日期")] [DataChange] public DateTime EventDate { get; set; } /// /// 互换交易id /// [DisplayName("互换交易id")] [DataChange] public int SwapTradeId { get; set; } /// /// 互换交易编码 /// [DisplayName("互换交易编码")] [DataChange] public string SwapTradeNo { get; set; } /// /// 持仓编码 /// [NotMapped] public string SwapPositionIdPadding { get { return PositionId.ToString().PadLeft(8, '0'); } } /// /// 平仓事件 1:开仓,2:平仓,3:互换,4:自动互换 /// [DisplayName("平仓事件")] [DataChange] public int EventType { get; set; } [NotMapped] public string EventTypeStr { get { switch (EventType) { case 1:return "开仓"; case 2: return "平仓"; case 3: return "互换"; case 4: return "自动互换"; default:return ""; } } } /// /// 事件原因 /// [DisplayName("事件原因")] [DataChange] public string EventReason { get; set; } /// /// 浮动端收支方向 1:收取,2:支付 /// [DisplayName("浮动端收支方向")] [DataChange] public int PayDirection { get; set; } [NotMapped] public string PayDirectionStr { get { if (PayDirection == 1) { return "收取"; } else if (PayDirection == 2) { return "支付"; } else return ""; } } /// /// 浮动端多空方向 1:多,2:空 /// [DisplayName("浮动端多空方向")] [DataChange] public int PositionType { get; set; } [NotMapped] public string PositionTypeStr { get { if (PositionType == 1) { return "B"; } else if (PositionType == 2) { return "S"; } else return ""; } } /// /// 标的代码 /// [DisplayName("标的代码")] [DataChange] public string UnderlyingCode { get; set; } /// /// 到期日 /// [DisplayName("到期日")] [DataChange] public DateTime? MatuirityDate { get; set; } /// /// 成交数量 /// [DisplayName("成交数量")] [DataChange] public decimal Quantity { get; set; } /// /// 剩余持仓数量 /// public decimal? PositionQty { get; set; } /// /// 乘积因子 /// [DisplayName("乘积因子")] [DataChange] public decimal CountRatio { get; set; } /// /// 合约乘数 /// [DisplayName("合约乘数")] [DataChange] public decimal ContractSize { get; set; } /// /// 期初标的价格 /// [NotMapped] public decimal PosiNetPrice { get; set; } /// /// 期初标的价格不含费 /// [NotMapped] public decimal PosiGrossPrice { get; set; } /// /// 成交金额 /// [DisplayName("成交金额")] [DataChange] public decimal TradingAmount { get; set; } /// /// 成交均价 /// [DisplayName("成交均价")] [DataChange] public decimal TradingAmountAvg { get; set; } /// /// 含费均价 /// [DisplayName("含费均价")] [DataChange] public decimal TradingAmountFeeAvg { get; set; } /// /// 交易费用佣金 /// [DisplayName("交易费用佣金")] [DataChange] public decimal TradingFee { get; set; } /// /// 待结算后付交易费用佣金 /// [DisplayName("待结算后付交易费用佣金")] [DataChange] public decimal TradingFeePending { get; set; } /// /// 待结算分红收益 /// [DisplayName("待结算分红收益")] [DataChange] public decimal DividendPending { get; set; } /// /// 浮动端平仓盈亏·盯市 /// [DisplayName("浮动端平仓盈亏·盯市")] [DataChange] public decimal MarkClosePnl { get; set; } /// /// 浮动端平仓盈亏·分红 /// [DisplayName("浮动端平仓盈亏·分红")] [DataChange] public decimal DividendIn { get; set; } /// /// 浮动端平仓盈亏·费用 /// [DisplayName("浮动端平仓盈亏·费用")] [DataChange] public decimal CloseFee { get; set; } /// /// 平仓前 交易佣金+后付费用 /// [NotMapped] public decimal BeforeCloseFee { get; set; } /// /// 基础费率(仅前端展示,不存库) /// [NotMapped] public decimal PosiTradingFeeUnit { get; set; } /// /// 基础费率模式 0=百分比 1=单位数量(仅前端展示,不存库) /// [NotMapped] public int PosiFeeType { get; set; } /// /// 持仓腿id /// [DisplayName("持仓腿id")] [DataChange] public long PositionId { get; set; } /// /// 数据状态 0:废弃,1:等待流水开平仓完成,100:完成 /// [DisplayName("数据状态")] [DataChange] public int DataState { get; set; } /// /// 资金记录id /// [DisplayName("资金记录id")] [DataChange] public int ClientCashId { get; set; } /// /// 利息端收支方向 /// [DisplayName("收支方向")] [DataChange] public int InterestDirection { get; set; } [NotMapped] public string InterestDirectionStr { get { if (InterestDirection == 1) { return "收取"; } else if (InterestDirection == 2) { return "支付"; } else return ""; } } /// /// 计息方式 1:固定值,2:合约名义本金规模,3:持仓名义本金,4:持仓市值 /// [DisplayName("计息方式")] [DataChange] public int InterestMode { get; set; } /// /// 标的资产类型 /// public string UnderlyingInstrumentType { get; set; } [NotMapped] public string InterestModeStr { get { if (InterestMode==0) { return string.Empty; } return ((InterestModeEnum)InterestMode).ToString(); } } /// /// 利息端计息基准 /// [DisplayName("计息基准")] [DataChange] public decimal InterestPrincipal { get; set; } /// /// 利息端计息利率 /// [DisplayName("计息利率")] [DataChange] public decimal InterestRate { get; set; } /// /// 互换间隔 /// [DisplayName("互换间隔")] [DataChange] public string InterestSwapInterval { get; set; } /// /// 利息端利息金额 /// [DisplayName("利息金额")] [DataChange] public decimal InterestAmount { get; set; } /// /// 当日新计利息 /// [NotMapped] public decimal TdInterestAmount { get; set; } /// /// 利息端计息费用 /// [DisplayName("计息费用")] [DataChange] public decimal InterestFee { get; set; } /// /// 利息端利息端平仓盈亏 /// [DisplayName("利息端平仓盈亏")] [DataChange] public decimal InterestClosePnL { get; set; } public long? EventId { get; set; } public int? ClientId { get; set; } public decimal? FloatRate { get; set; } /// /// 支付日 /// public DateTime? PayDate { get; set; } /// /// 成交净价含费 /// public decimal? TradingAmountNetFeeAvg { get; set; } /// /// 成交净价不含费 /// public decimal? TradingAmountNetAvg { get; set; } public DateTime? UnwindDate { get; set; } /// /// 操作记录 /// public string OptLog { get; set; } /// /// 互换观察日集合 /// [NotMapped] public List SwapIntervalList { get { if (string.IsNullOrEmpty(InterestSwapInterval)) { return new List(); } return JsonConvert.DeserializeObject>(InterestSwapInterval); } } /// /// 浮动端平仓盈亏 /// [NotMapped] public decimal FloatPnlSum { get { return MarkClosePnl + TradingFee + TradingFeePending + DividendIn; } } /// /// 成交收益率 /// [NotMapped] public decimal? InitYtm { get; set; } } }