using System.ComponentModel.DataAnnotations.Schema;
namespace YLErp.DBModels
{
[Table("trade_action")]
public class TradeAction : DBModelBase
{
public int TradeId { get; set; }
///
/// 执行日期
///
public DateTime ValueDate { get; set; }
///
/// 操作类型
///
public TradeActionType ActionType { get; set; }
///
/// 操作标识(增加扩展性)
///
public int ActionFlag { get; set; }
///
/// 操作备注
///
public string ActionRemark { get; set; }
///
/// 审核标识(0:无需审核,1:等待第一步审核,2...,100:审核通过)
///
public byte CheckFlag { get; set; }
///
/// 是否有效数据
///
public bool IsValid { get; set; }
///
/// 资金ID
///
public int? CashId { get; set; }
///
/// 回退ID
///
public long? BackId { get; set; }
///
/// 创建时间
///
public DateTime CreateTime { get; set; }
public string ActionData { get; set; }
///
/// 操作人ID
///
public int? OptId { get; set; }
///
/// 操作人名称
///
[NotMapped]
public string OptName { get; set; }
public TradeAction Clone()
{
return (TradeAction)MemberwiseClone();
}
public override string ToString()
{
return $"{id}-{TradeId}--{ValueDate}--{ActionType}";
}
}
///
/// 交易操作类型
///
public enum TradeActionType
{
//---------开仓操作--------------
///
/// 新增交易
///
NewTrade = 1,
///
/// 修改交易
///
ModifyTrade = 2,
///
/// 确认交易
///
ConfirmTrade = 3,
///
/// 删除交易
///
DeleteTrade = 10,
//---------交易回退--------------
///
/// 回退交易
///
BackTrade = 11,
//---------要素变更--------------
///
/// 除权除息
///
ExDividend = 40,
///
/// 累计期权换月
///
AccumulatorChange = 50,
//---------观察日结算--------------
///
/// 期权敲入
///
KnockIn = 101,
///
/// 支付票息
///
ObCoupon = 102,
///
/// 现金支付
///
ObCash = 103,
///
/// 转远期
///
ToForward = 110,
//---------了结操作--------------
///
/// 平仓
///
Close = 201,
///
/// 执行
///
Exercise = 202,
///
/// 敲出
///
KnockOut = 210,
///
/// 到期
///
Expire = 220
}
public static class TradeActionHelper
{
///
/// 资金当期结算
///
public const int Flag_CashAtHit = 0;
///
/// 资金期末结算
///
public const int Flag_CashAtEnd = 1;
///
/// 全部了结
///
public const int Flag_FullClosed = byte.MaxValue;
///
///
///
public const TradeActionType Close_Begin = TradeActionType.Close;
///
/// 获取观察日结算产生的行为种类
///
public static readonly IEnumerable ObActionTypes;
static TradeActionHelper()
{
ObActionTypes = new List {
TradeActionType.KnockIn, TradeActionType.KnockOut, TradeActionType.ObCash, TradeActionType.ObCoupon, TradeActionType.ToForward
}.AsReadOnly();
}
}
[NotMapped]
public class TradeActionDto : TradeAction
{
}
}