/*  代码由框架生成,任何更改都可能导致被代码生成器覆盖，可自行修改。
* Ghre_CertificateRule.cs
*
*功 能： N / A
* 类 名： Ghre_CertificateRule
*
* Ver    变更日期 负责人  变更内容
* ───────────────────────────────────
*V0.01  2025/5/29 12:20:13  SimonHsiao   初版
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*┌──────────────────────────────────┐
*│　此技术信息为本公司机密信息，未经本公司书面同意禁止向第三方披露．　│
*│　作者：SimonHsiao                                                  │
*└──────────────────────────────────┘
*/
using Tiobon.Core.Model.ViewModels.Extend;

namespace Tiobon.Core.Model.Models;


/// <summary>
/// 培训证书规则 (Dto.Base)
/// </summary>
public class Ghre_CertificateRuleBase
{

    /// <summary>
    /// 规则类型
    /// </summary>
    [Display(Name = "RuleType"), Description("规则类型"), MaxLength(32, ErrorMessage = "规则类型 不能超过 32 个字符")]
    public string RuleType { get; set; }

    /// <summary>
    /// 规则编号
    /// </summary>
    [Display(Name = "RuleNo"), Description("规则编号"), MaxLength(32, ErrorMessage = "规则编号 不能超过 32 个字符")]
    public string RuleNo { get; set; }

    /// <summary>
    /// 证书名称
    /// </summary>
    [Display(Name = "CertificateName"), Description("证书名称"), MaxLength(32, ErrorMessage = "证书名称 不能超过 32 个字符")]
    public string CertificateName { get; set; }

    /// <summary>
    /// 课程场景ID
    /// </summary>
    public long? CourseSceneId { get; set; }

    /// <summary>
    /// 课程ID
    /// </summary>
    public long? CourseId { get; set; }

    /// <summary>
    /// 有效期类型
    /// </summary>
    [Display(Name = "ValidityType"), Description("有效期类型"), MaxLength(32, ErrorMessage = "有效期类型 不能超过 32 个字符")]
    public string ValidityType { get; set; }

    /// <summary>
    /// 固定数
    /// </summary>
    public int? StaticNum { get; set; }

    /// <summary>
    /// 固定类型
    /// </summary>
    [Display(Name = "StaticType"), Description("固定类型"), MaxLength(32, ErrorMessage = "固定类型 不能超过 32 个字符")]
    public string StaticType { get; set; }

    /// <summary>
    /// 有效期
    /// </summary>
    public DateTime? ValidityTime { get; set; }

    /// <summary>
    /// 发放规则
    /// </summary>
    [Display(Name = "SendRule"), Description("发放规则"), MaxLength(32, ErrorMessage = "发放规则 不能超过 32 个字符")]
    public string SendRule { get; set; }

    /// <summary>
    /// 分数
    /// </summary>
    public int? ScoreMin { get; set; }

    /// <summary>
    /// 分数1
    /// </summary>
    public int? ScoreMax { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
    public string RemarkSz { get; set; }

    /// <summary>
    /// 默认标志
    /// </summary>
    public int? IsDefault { get; set; }

    /// <summary>
    /// 预留字段1
    /// </summary>
    [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
    public string Reverse1 { get; set; }

    /// <summary>
    /// 预留字段2
    /// </summary>
    [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
    public string Reverse2 { get; set; }

    /// <summary>
    /// 预留字段3
    /// </summary>
    [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
    public string Reverse3 { get; set; }

    /// <summary>
    /// 预留字段4
    /// </summary>
    [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
    public string Reverse4 { get; set; }

    /// <summary>
    /// 预留字段5
    /// </summary>
    [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
    public string Reverse5 { get; set; }

    /// <summary>
    /// 预留字段6
    /// </summary>
    [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
    public string Reverse6 { get; set; }

    /// <summary>
    /// 预留字段7
    /// </summary>
    [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
    public string Reverse7 { get; set; }

    /// <summary>
    /// 预留字段8
    /// </summary>
    [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
    public string Reverse8 { get; set; }

    /// <summary>
    /// 预留字段9
    /// </summary>
    [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
    public string Reverse9 { get; set; }

    /// <summary>
    /// 预留字段10
    /// </summary>
    [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
    public string Reverse10 { get; set; }

    /// <summary>
    /// 预留字段11
    /// </summary>
    public int? ReverseI1 { get; set; }

    /// <summary>
    /// 预留字段12
    /// </summary>
    public int? ReverseI2 { get; set; }

    /// <summary>
    /// 课程场景ID
    /// </summary>
    [Display(Name = "CourseSceneId1"), Description("课程场景ID"), MaxLength(2000, ErrorMessage = "课程场景ID 不能超过 2000 个字符")]
    public string CourseSceneId1 { get; set; }

    /// <summary>
    /// 课程ID
    /// </summary>
    [Display(Name = "CourseId1"), Description("课程ID"), MaxLength(2000, ErrorMessage = "课程ID 不能超过 2000 个字符")]
    public string CourseId1 { get; set; }

    /// <summary>
    /// 颁发机构类型
    /// </summary>
    [Display(Name = "IssueOrgType"), Description("颁发机构类型"), MaxLength(32, ErrorMessage = "颁发机构类型 不能超过 32 个字符")]
    public string IssueOrgType { get; set; }

    /// <summary>
    /// 颁发机构ID
    /// </summary>
    public long? IssueOrgId { get; set; }

    /// <summary>
    /// 颁发机构名称
    /// </summary>
    [Display(Name = "IssueOrgName"), Description("颁发机构名称"), MaxLength(64, ErrorMessage = "颁发机构名称 不能超过 64 个字符")]
    public string IssueOrgName { get; set; }

    /// <summary>
    /// 颁发部门ID
    /// </summary>
    public int? IssueDeptId { get; set; }

    /// <summary>
    /// 颁发公司ID
    /// </summary>
    public int? IssueCompanyId { get; set; }

    /// <summary>
    /// 集团数据归属
    /// </summary>
    public int? DataBelongID { get; set; }



    /// <summary>
    /// 课程场景ID
    /// </summary>
    public List<long> CourseSceneIds { get; set; }

    /// <summary>
    /// 课程ID
    /// </summary>
    public List<long> CourseIds { get; set; }

    public CertificateDesignerData CertificateDesignerData { get; set; } = new CertificateDesignerData();

}

