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

namespace Tiobon.Core.Model.Models;


/// <summary>
/// 外训申请_宝连通 (Model)
/// </summary>
[SugarTable("Ghre_ExternalTrainApplyOrder_Boltone", "Ghre_ExternalTrainApplyOrder_Boltone"), Entity(TableCnName = "外训申请_宝连通", TableName = "Ghre_ExternalTrainApplyOrder_Boltone")]
public class Ghre_ExternalTrainApplyOrder_Boltone : BasePoco
{

    /// <summary>
    /// 发起时间
    /// </summary>
    public DateTime? ApplicantTime { get; set; }

    /// <summary>
    /// 发起人ID
    /// </summary>
    public int? ApplicantId { get; set; }

    /// <summary>
    /// 发起人部门ID
    /// </summary>
    public int? ApplicantDeptId { get; set; }

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

    /// <summary>
    /// 受训人员
    /// </summary>
    public int? StaffId { get; set; }

    /// <summary>
    /// 培训开始时间
    /// </summary>
    public DateTime? BeginTime { get; set; }

    /// <summary>
    /// 培训结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }

    /// <summary>
    /// 培训地点
    /// </summary>
    [Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
    public string Address { get; set; }

    /// <summary>
    /// 培训机构
    /// </summary>
    public long? SchoolId { get; set; }

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

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

    /// <summary>
    /// 受训目的
    /// </summary>
    [Display(Name = "TrainGoal"), Description("受训目的"), MaxLength(2000, ErrorMessage = "受训目的 不能超过 2000 个字符")]
    public string TrainGoal { get; set; }

    /// <summary>
    /// 费用
    /// </summary>
    [Display(Name = "Cost"), Description("费用"), Column(TypeName = "decimal(20,2)")]
    public decimal? Cost { get; set; }

    /// <summary>
    /// 是否签订服务协议
    /// </summary>
    [Display(Name = "IsSignContract"), Description("是否签订服务协议"), MaxLength(32, ErrorMessage = "是否签订服务协议 不能超过 32 个字符")]
    public string IsSignContract { get; set; }

    /// <summary>
    /// 服务协议
    /// </summary>
    [Display(Name = "ContractContent"), Description("服务协议"), MaxLength(2000, ErrorMessage = "服务协议 不能超过 2000 个字符")]
    public string ContractContent { get; set; }

    /// <summary>
    /// 服务协议开始日期
    /// </summary>
    public DateTime? ContractBeginTime { get; set; }

    /// <summary>
    /// 服务协议结束日期
    /// </summary>
    public DateTime? ContractEndTime { get; set; }

    /// <summary>
    /// 培训结果
    /// </summary>
    [Display(Name = "TrainResult"), Description("培训结果"), MaxLength(2000, ErrorMessage = "培训结果 不能超过 2000 个字符")]
    public string TrainResult { get; set; }

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

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

    /// <summary>
    /// 证件有效开始日期
    /// </summary>
    public DateTime? CertificateBeginTime { get; set; }

    /// <summary>
    /// 证件有效结束日期
    /// </summary>
    public DateTime? CertificateEndTime { get; set; }

    /// <summary>
    /// 培训机构评价
    /// </summary>
    [Display(Name = "SchoolEval"), Description("培训机构评价"), MaxLength(100, ErrorMessage = "培训机构评价 不能超过 100 个字符")]
    public string SchoolEval { get; set; }

    /// <summary>
    /// 培训成果确认
    /// </summary>
    [Display(Name = "SchoolOutcomeConfirm"), Description("培训成果确认"), MaxLength(32, ErrorMessage = "培训成果确认 不能超过 32 个字符")]
    public string SchoolOutcomeConfirm { get; set; }

    /// <summary>
    /// WorkID
    /// </summary>
    public int? WorkID { get; set; }

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

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

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

    /// <summary>
    /// WorkState
    /// </summary>
    public int? WorkState { get; set; }

    /// <summary>
    /// ShiftID
    /// </summary>
    public int? ShiftID { get; set; }

    /// <summary>
    /// ConfirmUserID
    /// </summary>
    public int? ConfirmUserID { get; set; }

    /// <summary>
    /// ConfirmTime
    /// </summary>
    public DateTime? ConfirmTime { get; set; }

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

    /// <summary>
    /// 同意人
    /// </summary>
    public long? AgreeUserId { get; set; }

    /// <summary>
    /// 同意时间
    /// </summary>
    public DateTime? AgreeTime { get; set; }

    /// <summary>
    /// 同意理由
    /// </summary>
    [Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
    public string AgreeReason { get; set; }

    /// <summary>
    /// 拒绝人
    /// </summary>
    public long? RefuseUserId { get; set; }

    /// <summary>
    /// 拒绝时间
    /// </summary>
    public DateTime? RefuseTime { get; set; }

    /// <summary>
    /// 拒绝理由
    /// </summary>
    [Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
    public string RefuseReason { 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>
    /// SchoolName1
    /// </summary>
    [Display(Name = "SchoolName1"), Description("SchoolName1"), MaxLength(128, ErrorMessage = "SchoolName1 不能超过 128 个字符")]
    public string SchoolName1 { get; set; }

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