Files
zszq-trs/YLErpDAL/Modules/SuperviseReportModule/CFMMC2022/Model/SuperviseReportBaseModel.cs
T
2024-05-09 14:06:26 +08:00

1262 lines
33 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using YLErp.Commons;
namespace YLErp.Modules.SuperviseReportModule.CFMMC2022.Model
{
public abstract class SuperviseReportBaseModel
{
/// <summary>
/// 交易对手方2名称
/// </summary>
public string ClientName { get; set; }
/// <summary>
/// 交易对手方2的统一社会信用代码
/// </summary>
public string ClientLicenseCode { get; set; }
/// <summary>
/// 交易对手方2的LEI
/// </summary>
public string ClientLEI { get; set; }
/// <summary>
/// 主协议类型
/// </summary>
public string ProtocalType { get; set; }
/// <summary>
/// 主协议日期
/// </summary>
public DateTime? ProtocolSignDate { get; set; }
/// <summary>
/// 生效日
/// </summary>
public string ProtocolSignDateString
{
get
{
return ProtocolSignDate == null ? null : ProtocolSignDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 是否中央对手方清算
/// </summary>
public string IsCentralClearingPlatform { get; set; }
/// <summary>
/// 中央清算平台名称
/// </summary>
public string CentralClearingPlatform { get; set; }
/// <summary>
/// 交易平台
/// </summary>
public string TradePlatform { get; set; }
/// <summary>
/// 持仓编号
/// </summary>
public string PositionCode { get; set; }
/// <summary>
/// 多腿编号
/// </summary>
public string MoreLegCode { get; set; }
/// <summary>
/// 生效日
/// </summary>
public DateTime? StartDate { get; set; }
/// <summary>
/// 生效日
/// </summary>
public string StartDateString
{
get
{
return StartDate == null ? null : StartDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 到期日
/// </summary>
public DateTime? EndDate { get; set; }
/// <summary>
/// 到期日
/// </summary>
public string EndDateString
{
get
{
return EndDate == null ? null : EndDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 提前终止日期
/// </summary>
public DateTime? UnWindDate { get; set; }
/// <summary>
/// 提前终止日期
/// </summary>
public string UnWindDateString
{
get
{
return UnWindDate == null ? null : UnWindDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 成交编号
/// </summary>
public string TradeNumber { get; set; }
/// <summary>
/// 交易确认时间
/// </summary>
public DateTime? TradeDate { get; set; }
/// <summary>
/// 交易确认时间
/// </summary>
public string TradeDateString
{
get
{
return TradeDate == null ? null : TradeDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 资产类型
/// </summary>
public string VarietyType { get; set; }
/// <summary>
/// 交易对手方1方向 (1.针对期权和远期交易:B:买方S:卖方 2.针对互换交易:P:payer,即付固定、收浮动方 R:receiver,即收固定、付浮动方)
/// </summary>
public string ClientDirection { get; set; }
/// <summary>
/// 标的资产所属板块
/// </summary>
public string UnderlyingPlate { get; set; }
/// <summary>
/// 买入卖出
/// </summary>
public string BuySell { get; set; }
/// <summary>
/// 工具类型
/// </summary>
public string ToolType { get; set; }
/// <summary>
/// 期权行权时间类型
/// </summary>
public string ExerciseMode { get; set; }
/// <summary>
/// 期权权利类型
/// </summary>
public string OptionType { get; set; }
/// <summary>
/// 交易类型
/// </summary>
public string TradeType { get; set; }
/// <summary>
/// 结构化交易中的组合类型
/// <para>确定产品结构时使用</para>
/// </summary>
public string StructureType { get; set; }
/// <summary>
/// 二元期权PayoffType
/// <para>确定产品结构时使用</para>
/// </summary>
public string PayoffType { get; set; }
/// <summary>
/// 标的资产品种
/// </summary>
public string VarietyCode { get; set; }
/// <summary>
/// 标的资产对应合约
/// </summary>
public string UnderlyingCode { get; set; }
/// <summary>
/// 标的期初价格
/// </summary>
public string UnderlyingInitialPrice { get; set; }
/// <summary>
/// 标的期初价格货币
/// </summary>
public string UnderlyingInitialPriceCurrency { get; set; }
/// <summary>
/// 标的期初价格符号
/// </summary>
public string UnderlyingInitialPriceSymbol { get; set; }
/// <summary>
/// 平仓或终止时的标的价格
/// </summary>
public string ClosedUnderlyingPrice { get; set; }
/// <summary>
/// 数量单位En
/// </summary>
public string QuoteUnitEn { get; set; }
/// <summary>
/// 执行价格1
/// </summary>
private double? _strike;
/// <summary>
/// 执行价格1
/// </summary>
public double? Strike
{
get
{
return _strike;
}
set
{
if (PS.Config.Company == Configuration.CompanyEnum.国投)
{
_strike = OtcFormatHelper.FormatValue(value, 2);
}
else
{
_strike = OtcFormatHelper.FormatValue(value, 4);
}
}
}
public string StrikeString
{
get
{
if (PS.Config.Company == Configuration.CompanyEnum.国投)
{
return Strike == null ? null : Strike.Value.ToString("0.##");
}
else
{
return Strike == null ? null : Strike.Value.ToString("0.####");
}
}
}
private double? _strike2;
/// <summary>
/// 执行价格2
/// </summary>
public double? Strike2
{
get
{
return _strike2;
}
set
{
if (PS.Config.Company == Configuration.CompanyEnum.国投)
{
_strike2 = OtcFormatHelper.FormatValue(value, 2);
}
else
{
_strike2 = OtcFormatHelper.FormatValue(value, 4);
}
}
}
/// <summary>
/// 执行价格2
/// </summary>
public string Strike2String
{
get
{
if (PS.Config.Company == Configuration.CompanyEnum.国投)
{
return Strike2 == null ? null : Strike2.Value.ToString("0.##");
}
else
{
return Strike2 == null ? null : Strike2.Value.ToString("0.####");
}
}
}
private double? _strike3;
/// <summary>
/// 执行价格3
/// </summary>
public double? Strike3
{
get
{
return _strike3;
}
set
{
if (PS.Config.Company == Configuration.CompanyEnum.国投)
{
_strike3 = OtcFormatHelper.FormatValue(value, 2);
}
else
{
_strike3 = OtcFormatHelper.FormatValue(value, 6);
}
}
}
/// <summary>
/// 执行价格3
/// </summary>
public string Strike3String
{
get
{
if (PS.Config.Company == Configuration.CompanyEnum.国投)
{
return Strike3 == null ? null : Strike3.Value.ToString("0.##");
}
else
{
return Strike3 == null ? null : Strike3.Value.ToString("0.######");
}
}
}
/// <summary>
/// 执行价格货币
/// </summary>
public string StrikeCurrency { get; set; }
/// <summary>
/// 执行价格符号
/// </summary>
public string StrikeSymbol { get; set; }
/// <summary>
/// 观察类型
/// </summary>
public string ObserveType { get; set; }
/// <summary>
/// 观察起始日
/// </summary>
public DateTime? ObserveStartDate { get; set; }
/// <summary>
/// 观察起始日
/// </summary>
public string ObserveStartDateString
{
get
{
return ObserveStartDate == null ? null : ObserveStartDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 观察结束日
/// </summary>
public DateTime? ObserveEndDate { get; set; }
/// <summary>
/// 观察结束日
/// </summary>
public string ObserveEndDateString
{
get
{
return ObserveEndDate == null ? null : ObserveEndDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 观察周期 DAIL:日度 WEEK:周度 MNTH:月度 YEAR:年度 Other:其他
/// </summary>
public string ObservationPeriod { get; set; }
public double? _observePeriodMultiplier { get; set; }
/// <summary>
/// 观察周期乘数
/// </summary>
public double? ObservePeriodMultiplier
{
get
{
return _observePeriodMultiplier > 0 ? _observePeriodMultiplier : null;
}
set
{
_observePeriodMultiplier = OtcFormatHelper.FormatValue(value, 0);
}
}
/// <summary>
/// 观察周期乘数
/// </summary>
public decimal? ObservePeriodMultiplierString
{
get
{
if (ObservePeriodMultiplier != null)
{
return decimal.Parse(ObservePeriodMultiplier.Value.ToString());
}
return null;
}
}
/// <summary>
/// 收益计算方式
/// </summary>
public string RevenueCalculationMethod { get; set; }
/// <summary>
/// 保底收益
/// </summary>
public double? _guaranteedIncome { get; set; }
/// <summary>
/// 保底收益
/// </summary>
public double? GuaranteedIncome
{
get
{
return _guaranteedIncome;
}
set
{
if (PS.Config.Company == Configuration.CompanyEnum.东吴)
{
_guaranteedIncome = (value != null && value.Value != 0) ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(double?);
}
else
{
_guaranteedIncome = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(double?);
}
}
}
/// <summary>
/// 保底收益
/// </summary>
public decimal? GuaranteedIncomeString
{
get
{
return GuaranteedIncome == null ? default(decimal?) : decimal.Parse(GuaranteedIncome.Value.ToString("0.####"));
}
}
/// <summary>
/// 保底收益货币
/// </summary>
public string GuaranteedIncomeCurrency
{
get => GuaranteedIncome == null ? string.Empty : _guaranteedIncomeCurrency;
set => _guaranteedIncomeCurrency = value;
}
/// <summary>
/// 保底收益符号
/// </summary>
public string GuaranteedIncomeSymbol
{
get => GuaranteedIncome == null ? string.Empty : _guaranteedIncomeSymbol;
set => _guaranteedIncomeSymbol = value;
}
/// <summary>
/// 行权收益1
/// </summary>
public double? _exerciseBenefits;
/// <summary>
/// 行权收益1
/// </summary>
public double? ExerciseBenefits
{
get
{
return _exerciseBenefits;
}
set
{
_exerciseBenefits = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 行权收益1
/// </summary>
public decimal? ExerciseBenefitsString
{
get
{
return ExerciseBenefits == null ? default(Nullable<decimal>) : decimal.Parse(ExerciseBenefits.Value.ToString("0.######"));
}
}
/// <summary>
/// 行权收益2
/// </summary>
public double? _exerciseBenefits2;
/// <summary>
/// 行权收益2
/// </summary>
public double? ExerciseBenefits2
{
get
{
return _exerciseBenefits2;
}
set
{
_exerciseBenefits2 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 行权收益2
/// </summary>
public decimal? ExerciseBenefits2String
{
get
{
return ExerciseBenefits2 == null ? default(Nullable<decimal>) : decimal.Parse(ExerciseBenefits2.Value.ToString("0.######"));
}
}
/// <summary>
/// 行权收益3
/// </summary>
public double? _exerciseBenefits3;
/// <summary>
/// 行权收益3
/// </summary>
public double? ExerciseBenefits3
{
get
{
return _exerciseBenefits3;
}
set
{
_exerciseBenefits3 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 行权收益3
/// </summary>
public decimal? ExerciseBenefits3String
{
get
{
return ExerciseBenefits3 == null ? default(Nullable<decimal>) : decimal.Parse(ExerciseBenefits3.Value.ToString("0.######"));
}
}
/// <summary>
/// 行权收益货币
/// </summary>
public string ExerciseBenefitsCurrency { get; set; }
/// <summary>
/// 行权收益符号
/// </summary>
public string ExerciseBenefitsSymbol { get; set; }
/// <summary>
/// 障碍价1
/// </summary>
public double? _barriersPrice { get; set; }
/// <summary>
/// 障碍价1
/// </summary>
public double? BarriersPrice
{
get
{
return _barriersPrice;
}
set
{
_barriersPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 障碍价1
/// </summary>
public string BarriersPriceString
{
get
{
return BarriersPrice == null ? null : BarriersPrice.Value.ToString("0.######");
}
}
/// <summary>
/// 障碍价1触碰方向
/// </summary>
public string BarriersPriceTouchDirection { get; set; }
/// <summary>
/// 障碍价1类型
/// </summary>
public string BarriersPriceType { get; set; }
/// <summary>
/// 障碍价2
/// </summary>
public double? _barriersPrice2 { get; set; }
/// <summary>
/// 障碍价2
/// </summary>
public double? BarriersPrice2
{
get
{
return _barriersPrice2;
}
set
{
_barriersPrice2 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 障碍价2
/// </summary>
public string BarriersPrice2String
{
get
{
return BarriersPrice2 == null ? null : BarriersPrice2.Value.ToString("0.######");
}
}
/// <summary>
/// 障碍价2触碰方向
/// </summary>
public string BarriersPrice2TouchDirection { get; set; }
/// <summary>
/// 障碍价2类型
/// </summary>
public string BarriersPrice2Type { get; set; }
/// <summary>
/// 补偿收益1
/// </summary>
public double? _compensationIncome;
/// <summary>
/// 补偿收益1
/// </summary>
public double? CompensationIncome
{
get
{
return _compensationIncome;
}
set
{
_compensationIncome = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 补偿收益1
/// </summary>
public decimal? CompensationIncomeString
{
get
{
return CompensationIncome == null ? default(Nullable<decimal>) : decimal.Parse(CompensationIncome.Value.ToString("0.######"));
}
}
/// <summary>
/// 补偿收益2
/// </summary>
public double? _compensationIncome2;
/// <summary>
/// 补偿收益2
/// </summary>
public double? CompensationIncome2
{
get
{
return _compensationIncome2;
}
set
{
_compensationIncome2 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// 补偿收益2
/// </summary>
public decimal? CompensationIncome2String
{
get
{
return CompensationIncome2 == null ? default(Nullable<decimal>) : decimal.Parse(CompensationIncome2.Value.ToString("0.######"));
}
}
/// <summary>
/// 补偿收益货币
/// </summary>
public string CompensationIncomeCurrency { get; set; }
/// <summary>
/// 补偿收益符号
/// </summary>
public string CompensationIncomeSymbol { get; set; }
/// <summary>
/// SA&PA-敲入障碍价
/// </summary>
public double? _knockInBarrierPrice { get; set; }
/// <summary>
/// SA&PA-敲入障碍价
/// </summary>
public double? KnockInBarrierPrice
{
get
{
return _knockInBarrierPrice;
}
set
{
_knockInBarrierPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// SA&PA-敲入障碍价
/// </summary>
public string KnockInBarrierPriceString
{
get
{
return KnockInBarrierPrice == null ? null : KnockInBarrierPrice.Value.ToString("0.######");
}
}
/// <summary>
/// SA&PA-敲入观察期
/// </summary>
public string KnockInObservationPeriod { get; set; }
/// <summary>
/// SA&PA-敲出障碍价
/// </summary>
public double? _knockOutBarrierPrice { get; set; }
/// <summary>
/// SA&PA-敲出障碍价
/// </summary>
public double? KnockOutBarrierPrice
{
get
{
return _knockOutBarrierPrice;
}
set
{
_knockOutBarrierPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// SA&PA-敲出障碍价
/// </summary>
public string KnockOutBarrierPriceString
{
get
{
return KnockOutBarrierPrice == null ? null : KnockOutBarrierPrice.Value.ToString("0.######");
}
}
/// <summary>
/// SA&PA-Coupon障碍价
/// </summary>
public double? _couponBarrierPrice { get; set; }
/// <summary>
///SA&PA-Coupon障碍价
/// </summary>
public double? CouponBarrierPrice
{
get
{
return _couponBarrierPrice;
}
set
{
_couponBarrierPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
/// SA&PA-Coupon障碍价
/// </summary>
public string CouponBarrierPriceString
{
get
{
return CouponBarrierPrice == null ? null : CouponBarrierPrice.Value.ToString("0.######");
}
}
/// <summary>
/// SA&PA-Coupon年化收益率
/// </summary>
public double? _couponAnnualRate { get; set; }
/// <summary>
///SA&PA-Coupon年化收益率
/// </summary>
public double? CouponAnnualRate
{
get
{
return _couponAnnualRate;
}
set
{
_couponAnnualRate = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
}
}
/// <summary>
///SA&PA-Coupon年化收益率
/// </summary>
public decimal? CouponAnnualRateString
{
get
{
return CouponAnnualRate == null || double.IsInfinity(CouponAnnualRate ?? 0) ? default(Nullable<decimal>) : decimal.Parse(CouponAnnualRate.Value.ToString("0.######"));
}
}
/// <summary>
/// 远期价格
/// </summary>
public double? _forwardPrice { get; set; }
/// <summary>
/// 远期价格
/// </summary>
public double? ForwardPrice
{
get
{
return _forwardPrice;
}
set
{
_forwardPrice = value != null ? OtcFormatHelper.FormatValue(value.Value, 4) : default(Nullable<double>);
}
}
/// <summary>
/// 远期价格
/// </summary>
public string ForwardPriceString
{
get
{
return ForwardPrice == null ? null : ForwardPrice.Value.ToString("0.####");
}
}
/// <summary>
/// 远期价格货币
/// </summary>
public string ForwardPriceCurrency { get; set; }
/// <summary>
/// 远期价格符号
/// </summary>
public string ForwardPriceSymbol { get; set; }
/// <summary>
/// 固定收益
/// </summary>
public double? _fixedIncome { get; set; }
/// <summary>
/// 固定收益
/// </summary>
public double? FixedIncome
{
get
{
return _fixedIncome;
}
set
{
_fixedIncome = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 4)) : default(Nullable<double>);
}
}
/// <summary>
/// 固定收益
/// </summary>
public decimal? FixedIncomeString
{
get
{
return FixedIncome == null ? default(Nullable<decimal>) : decimal.Parse(FixedIncome.Value.ToString("0.####"));
}
}
/// <summary>
/// 固定收益货币
/// </summary>
public string FixedIncomeCurrency { get; set; }
/// <summary>
/// 固定收益符号
/// </summary>
public string FixedIncomeSymbol { get; set; }
/// <summary>
/// 浮动方方向
/// </summary>
public string FloatingDirection { get; set; }
/// <summary>
/// 支付周期
/// </summary>
public string PaymentCycle { get; set; }
/// <summary>
/// 支付周期乘数
/// </summary>
public double? _paymentCycleMultiplier { get; set; }
/// <summary>
/// 支付周期乘数
/// </summary>
public double? PaymentCycleMultiplier
{
get
{
return _paymentCycleMultiplier > 0 ? _paymentCycleMultiplier : null;
}
set
{
_paymentCycleMultiplier = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 4)) : default(Nullable<double>);
}
}
/// <summary>
/// 支付周期乘数
/// </summary>
public string PaymentCycleMultiplierString
{
get
{
return PaymentCycleMultiplier == null ? null : PaymentCycleMultiplier.Value.ToString();
}
}
/// <summary>
/// 初始名义金额
/// </summary>
public string InitialNominalAmount { get; set; }
private double? _foreignCurrencyRate;
/// <summary>
/// 外汇兑人民币期初汇率
/// </summary>
public double? ForeignCurrencyRate
{
get { return _foreignCurrencyRate; }
set { _foreignCurrencyRate = value.HasValue ? (double?)OtcFormatHelper.FormatValue(value ?? 0, 4) : null; }
}
/// <summary>
/// 初始名义数量
/// </summary>
public string InitialNominalNumber { get; set; }
/// <summary>
/// 数量单位
/// </summary>
public string QuoteUnit { get; set; }
/// <summary>
/// 是否为年化名义金额
/// </summary>
public string IsAnnualizedNominalAmount { get; set; }
private double? _participateRate;
/// <summary>
/// 参与率
/// </summary>
public double? ParticipateRate
{
get { return _participateRate; }
set { _participateRate = OtcFormatHelper.FormatValue(value, 4); }
}
/// <summary>
/// 参与率
/// </summary>
public decimal? ParticipateRateString
{
get
{
return ParticipateRate == null ? default(Nullable<decimal>) : decimal.Parse(ParticipateRate.Value.ToString("0.####"));
}
}
public string DeltaCash { get; set; }
/// <summary>
/// 结算方式
/// </summary>
public string SettlementMethod { get; set; }
/// <summary>
/// 最后结算日
/// </summary>
public DateTime? LastUnWindDate { get; set; }
/// <summary>
/// 最后结算日
/// </summary>
public string LastUnWindDateString
{
get
{
return LastUnWindDate == null ? null : LastUnWindDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 交易Id
/// </summary>
public int TradeId { get; set; }
/// <summary>
/// 交易确认书编号
/// </summary>
public string ContractCode { get; set; }
/// <summary>
/// 行权日
/// </summary>
public DateTime? ExerciseDate { get; set; }
/// <summary>
/// 行权日
/// </summary>
public string ExerciseDateString
{
get
{
return ExerciseDate == null ? null : ExerciseDate.Value.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 期权产品结构
/// </summary>
public string OptionProductStructure { get; set; }
#region 辅助属性
[NotMapped]
public DateTime? OptDate { get; set; }
[NotMapped]
public string OriginalTradeNumber { get; set; }
public trade _trade;
private string _guaranteedIncomeCurrency;
private string _guaranteedIncomeSymbol;
public trade originalTrade { get; set; }
[NotMapped]
public trade trade
{
get
{
try
{
if (_trade == null)
{
if (!string.IsNullOrWhiteSpace(TradeJson))
{
_trade = trade.Deserialize(TradeJson);
}
else { _trade = originalTrade; }
}
}
catch (Exception ex)
{
LogFactory.GetLogger("NewSuperviseReportBaseModel").Error(ex);
}
return _trade;
}
}
[NotMapped]
public string TradeJson { get; set; }
///// <summary>
///// 报价单位比率
///// <para>通常情况下只有鸡蛋会是2</para>
///// </summary>
//[NotMapped]
//public int CountRatio { get; set; }
[NotMapped]
public string OriginalVarietyCode { get; set; }
/// <summary>
/// 平仓比例
/// </summary>
[NotMapped]
public double? UnwindPercentRate { get; set; }
/// <summary>
/// 客户Id
/// </summary>
[NotMapped]
public int ClientId { get; set; }
/// <summary>
/// 父交易Id
/// </summary>
[NotMapped]
public int? ParentTradeId { get; set; }
/// <summary>
/// 交易状态
/// </summary>
[NotMapped]
public string TradeStatus { get; set; }
public int IsGroup { get; set; }
public double? _delta { get; set; }
public double? _gamma { get; set; }
/// <summary>
/// 期权的资产类型
/// </summary>
[NotMapped]
public string ProductType { get; set; }
/// <summary>
/// 观察日列表,一个或多个日期字符串,日期之间以逗号分隔
/// 例如:2019-07-16,2019-08-16
/// </summary>
[NotMapped]
public string ObservationDates { get; set; }
/// <summary>
/// 平仓或终止时的标的价格
/// </summary>
[NotMapped]
public double? FinalPrice { get; set; }
/// <summary>
/// 自定义字段扩展
/// </summary>
[NotMapped]
public string ExtendInfo { get; set; }
[NotMapped]
public class StructureDetailInfo
{
public string name { get; set; }
public string value { get; set; }
}
/// <summary>
/// 标的物几家货币
/// </summary>
public string QuoteCurrency { get; set; }
/// <summary>
/// 报告当天日期
/// </summary>
public DateTime ValueDate { get; set; }
/// <summary>
/// 黑箱一年有效天数
/// </summary>
public string ValidDaysStr { get; set; }
[NotMapped]
public bool IsStock { get; set; } = false;
/// <summary>
/// 日终价格
/// </summary>
public double? _price { get; set; }
#endregion
}
}