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;
}
}