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 { /// /// 主协议关联产品 /// [Table("A1002_MasterAgrmtProduct")] public class MasterAgrmtProductModel : ReportBaseModel { /// /// 主协议编号(双方约定) /// 长度:100 /// 必填:是 /// 说明:双方约定 /// [CheckStringMaxLength(MaxLength = 100)] [DefaultValue("")] [SacDescription("MasterAgrmtNo", "主协议编号(双方约定)", "100", true, "双方约定;")] public string MasterAgrmtNo { get; set; } /// /// 操作标识 /// 长度:1 /// 必填:是 /// 说明: /// [XmlIgnore] [SacDescription("OperationType", "操作标识", "1", true, "")] public OptFlagsEnum OperationType { get; set; } /// /// 代签产品编号 /// 长度:32 /// 必填:否 /// 说明:校验规则:补正时必填 /// [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; } /// /// 客户类型 /// [XmlIgnore] [DefaultValue("")] [SacDescription("ClientType", "客户类型", "", false, "")] public string ClientType { get; set; } /// /// 产品名称 /// 长度:100 /// 必填:否 /// /// 说明:校验规则: /// 1 主协议交易对手方身份为产品管理人时必填; /// 2 主协议交易对手方身份为自营禁止填值; /// /// [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; } /// /// 交易对手码(产品) /// 长度:20 /// 必填:否 /// 说明:校验规则:1、主协议交易对手方身份为产品管理人必填;2、主协议交易对手方身份为自营禁止填值;3、应当符合标准规范 /// [CheckStringMaxLength(MaxLength = 20)] [DefaultValue("")] [SacDescription("CounterpartyCodeProducts", "交易对手码(产品)", "20", false, "校验规则:\r\n1、主协议交易对手方身份为产品管理人必填;\r\n2、主协议交易对手方身份为自营禁止填值;\r\n3、应当符合标准规范;")] public string CounterpartyCodeProducts { get; set; } /// /// 产品投资经理姓名 /// 长度:100 /// 必填:否 /// /// 说明:校验规则: /// 1 主协议交易对手方身份为产品管理人必填; /// 2 主协议交易对手方身份为自营禁止填值; /// /// [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; } /// /// 投资经理联系电话 /// 长度:20 /// 必填:否 /// /// 说明:校验规则: /// 1 主协议交易对手方身份为产品管理人必填; /// 2 主协议交易对手方身份为自营禁止填值; /// /// [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; } /// /// 托管机构(如有) /// 长度:200 /// 必填:否 /// /// 说明:校验规则: /// 1 主协议交易对手方身份为自营禁止填值; /// /// [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; } /// /// 入表日期 /// 长度:10 /// 必填:否 /// /// 说明:校验规则: /// 1 必须是YYYY-MM-DD; /// 2 主协议交易对手方身份为产品管理人必填; /// 3 主协议交易对手方身份为自营禁止填值; /// /// [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; } /// /// 代签产品附件 /// 长度:10 /// 必填:否 /// /// 说明:校验规则: /// 1 只支持PDF格式; /// 2 主协议交易对手方身份为产品管理人必填; /// 3 主协议交易对手方身份为自营禁止填值; /// /// [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; } } }