Files
zszq-trs/YLErpDAL/Modules/SuperviseReportModule/SAC/Model/MasterAgrmtProductModel.cs
T

169 lines
9.6 KiB
C#

using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Xml.Serialization;
using YLErp.Modules.SuperviseReportModule.SAC.Common;
using static YLErp.DBModels.Consts.ConsReport;
namespace YLErp.Modules.SuperviseReportModule.SAC.Model
{
/// <summary>
/// 主协议关联产品
/// </summary>
[Table("A1002_MasterAgrmtProduct")]
public class MasterAgrmtProductModel : ReportBaseModel
{
/// <summary>
/// 主协议编号(双方约定)
/// <para>长度:100</para>
/// <para>必填:是</para>
/// <para>说明:双方约定</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 100)]
[DefaultValue("")]
[SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "双方约定;")]
public string MasterAgrmtNo { get; set; }
/// <summary>
/// 操作标识
/// <para>长度:1</para>
/// <para>必填:是</para>
/// <para>说明:<see cref="OptFlagsEnum"/></para>
/// </summary>
[XmlIgnore]
[SacDescription("OperationType", "操作标识", "1", true, "")]
public OptFlagsEnum OperationType { get; set; }
/// <summary>
/// 代签产品编号
/// <para>长度:32</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:补正时必填</para>
/// </summary>
[CheckConditionStringValue(ConditionName = nameof(OperationType), ConditionValue = "A", CheckHandleNameArr = new[] { "B" })]
[CheckConditionStringNEQValue(ConditionName = nameof(OperationType), ConditionValue = "A", CheckHandleNameArr = new[] { "A" })]
[CheckStringMaxLength(MaxLength = 32, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 32, Required = false, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ProductNo", "代签产品编号", "32", false, "校验规则:补正时必填;")]
public string ProductNo { get; set; }
/// <summary>
/// 客户类型
/// </summary>
[XmlIgnore]
[DefaultValue("")]
[SacDescription("ClientType", "客户类型", "", false, "")]
public string ClientType { get; set; }
/// <summary>
/// 产品名称
/// <para>长度:100</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为产品管理人时必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 100, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ProductName", "产品名称", "100", false, "校验规则:\r\n1 主协议交易对手方身份为产品管理人时必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
public string ProductName { get; set; }
/// <summary>
/// 交易对手码(产品)
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>说明:校验规则:1、主协议交易对手方身份为产品管理人必填;2、主协议交易对手方身份为自营禁止填值;3、应当符合标准规范</para>
/// </summary>
[CheckStringMaxLength(MaxLength = 20)]
[DefaultValue("")]
[SacDescription("CounterpartyCodeProducts", "交易对手码(产品)", "20", false, "校验规则:\r\n1、主协议交易对手方身份为产品管理人必填;\r\n2、主协议交易对手方身份为自营禁止填值;\r\n3、应当符合标准规范;")]
public string CounterpartyCodeProducts { get; set; }
/// <summary>
/// 产品投资经理姓名
/// <para>长度:100</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为产品管理人必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 100, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("ManagerName", "产品投资经理姓名", "100", false, "校验规则:\r\n1 主协议交易对手方身份为产品管理人必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
public string ManagerName { get; set; }
/// <summary>
/// 投资经理联系电话
/// <para>长度:20</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为产品管理人必填;
/// 2 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 20, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("InvestmentManagerContactNumber", "投资经理联系电话", "20", false, "校验规则:\r\n1 主协议交易对手方身份为产品管理人必填;\r\n2 主协议交易对手方身份为自营禁止填值;")]
public string InvestmentManagerContactNumber { get; set; }
/// <summary>
/// 托管机构(如有)
/// <para>长度:200</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 200, Required = false, CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("TrusteeAgency", "托管机构(如有)", "200", false, "校验规则:\r\n1 主协议交易对手方身份为自营禁止填值;")]
public string TrusteeAgency { get; set; }
/// <summary>
/// 入表日期
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 必须是YYYY-MM-DD;
/// 2 主协议交易对手方身份为产品管理人必填;
/// 3 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringMaxLength(MaxLength = 10, CheckHandleName = "A")]
[CheckStringIsDateTimeFormat(FormatString = "yyyy-MM-dd", CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("TheDateTable", "入表日期", "10", false, "校验规则:\r\n1 必须是YYYY-MM-DD;\r\n2 主协议交易对手方身份为产品管理人必填;\r\n3 主协议交易对手方身份为自营禁止填值;")]
public string TheDateTable { get; set; }
/// <summary>
/// 代签产品附件
/// <para>长度:10</para>
/// <para>必填:否</para>
/// <para>
/// 说明:校验规则:
/// 1 只支持PDF格式;
/// 2 主协议交易对手方身份为产品管理人必填;
/// 3 主协议交易对手方身份为自营禁止填值;
/// </para>
/// </summary>
[CheckConditionStringInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "A" })]
[CheckConditionStringNotInMap(ConditionName = nameof(ClientType), ConditionMap = new[] { "产品", "产品管理人" }, CheckHandleNameArr = new[] { "B" })]
[CheckStringEndsWith(EndsWithString = ".pdf", CheckHandleName = "A")]
[CheckStringMaxLength(MaxLength = 0, CheckHandleName = "B")]
[DefaultValue("")]
[SacDescription("SuchProducts", "代签产品附件", "10", false, "校验规则:\r\n1 只支持PDF格式;\r\n2 主协议交易对手方身份为产品管理人必填;\r\n3 主协议交易对手方身份为自营禁止填值;")]
public string SuchProducts { get; set; }
}
}