using Tiobon.Core.Model.Models;

namespace Tiobon.Core.Model.ViewModels.Extend;

public class ResumeTemplateGroupColumn
{
    public long ResumeInfoColumnID { get; set; }
    public string ResumeInfoColumnName { get; set; }
    public int SortNo { get; set; }
    public int IsBuildIn { get; set; }
    public int IsRequired { get; set; }
    public int Removable { get; set; }
    public int DisplayType { get; set; }
}

public class ResumeTemplateGroupColumn1
{
    public int CanModifyBySelf { get; set; }
    public string ColumnType { get; set; }
    public int SortNo { get; set; }
    public string ResumeInfoColumnName { get; set; }
    public string DataType { get; set; }
    public int IsSingleColumn { get; set; }
    public string Placeholder { get; set; }
    public long ResumeInfoColumnId { get; set; }
}

public class ResumeFormColumn
{
    public string tabKey { get; set; }
    public string tabName { get; set; }
    public string type { get; set; }
    public string children1 { get; set; }
    public List<ResumeFormColumnChildren> children { get; set; }

}

public class ResumeFormColumnChildren
{
    public string dataSource { get; set; }
    public string dataType { get; set; }
    public string editable { get; set; }
    public string elementType { get; set; }
    public string field { get; set; }
    public string label { get; set; }
    public string multipleSelect { get; set; }
    public string @required { get; set; }
    public string placeholder { get; set; }
    public int sortNo { get; set; }
}

public class ResumeFormColumnSubmit
{
    public EditGhrh_ResumeInput Base { get; set; }
    public List<InsertGhrh_ResumeEduBGInput> Education { get; set; }
    public List<InsertGhrh_ResumeHomeInput> Family { get; set; }
    public List<InsertGhrh_ResumeLicenceInput> Licence { get; set; }
    public Dictionary<string, bool?> Statement { get; set; }
    public List<InsertGhrh_ResumeTrainingInput> Training { get; set; }

    public List<InsertGhrh_ResumeWorkExpInput> WorkExp { get; set; }
    public List<Ghrs_Attachment> Attachment { get; set; }


}

public class ResumeRecommendForm
{
    /// <summary>
    /// 人力需求维护ID
    /// </summary>
    public long? RequestId { get; set; }

    /// <summary>
    /// 部门ID
    /// </summary>
    public int? DeptId { get; set; }

    /// <summary>
    /// 岗位ID
    /// </summary>
    public int? TitleId { get; set; }

    /// <summary>
    /// 简历ID列表
    /// </summary>
    public List<long> ids { get; set; }

    /// <summary>
    /// 面试官列表
    /// </summary>
    public List<ResumeRecommendFormStaff> InterviewStaffs { get; set; }

    /// <summary>
    /// 推荐说明
    /// </summary>
    public string RecommendRemark { get; set; }

    /// <summary>
    /// 附件
    /// </summary>
    public List<Ghre_Attachment> Attachments { get; set; }
}

public class ResumeScheduleInterviewForm
{
    /// <summary>
    /// 时间段，2024/10/12 10:00~2024/10/12 11:00
    /// </summary>
    public string Time { get; set; }

    /// <summary>
    /// 面试地点
    /// </summary>
    public string InterviewAddress { get; set; }

    /// <summary>
    /// 面试环节
    /// </summary>
    public string InterviewStepName { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }

    /// <summary>
    /// 附件
    /// </summary>
    public List<ResumeAttachment> Attachments { get; set; }


}
public class ResumeScheduleInterviewResult
{
    /// <summary>
    /// 人力需求维护ID
    /// </summary>
    public long? RequestId { get; set; }

    /// <summary>
    /// 部门
    /// </summary>
    public string DeptName { get; set; }

    /// <summary>
    /// 岗位
    /// </summary>
    public string TitleName { get; set; }

    /// <summary>
    /// 需求人数
    /// </summary>
    public int? ResumeCount { get; set; }

    /// <summary>
    /// 已推荐人数
    /// </summary>
    public int? RecommendCount { get; set; } = 0;

    /// <summary>
    /// 已面试人数
    /// </summary>
    public int? InterviewCount { get; set; } = 0;

    /// <summary>
    /// 已录用人数
    /// </summary>
    public int? OfferCount { get; set; } = 0;

    /// <summary>
    /// 报到人数
    /// </summary>
    public int? CheckInCount { get; set; } = 0;

    /// <summary>
    /// 可约时间
    /// </summary>
    public List<string> Times { get; set; }

    /// <summary>
    /// 附件
    /// </summary>
    public List<ResumeAttachment> Attachments { get; set; } = new();

    public List<Ghra_Staff> Staffs { get; set; }

    /// <summary>
    /// 部门负责人ID
    /// </summary>
    public int? DeptManagerID { get; set; }

    /// <summary>
    /// 部门负责人邮箱
    /// </summary>
    public string DeptManagerEmail { get; set; }

    /// <summary>
    /// 上轮面试官
    /// </summary>
    public string LastInterviewName { get; set; }

    /// <summary>
    /// 上轮面试结果
    /// </summary>
    public string LastInterviewResult { get; set; }

    /// <summary>
    /// 上轮面试评估内容
    /// </summary>
    public string LastInterviewContent { get; set; }
    /// <summary>
    /// 姓名
    /// </summary>
    public string ResumeStaffName { get; set; }
}



public class ResumeRecommendFormStaff
{
    /// <summary>
    /// 员工ID
    /// </summary>
    public int? StaffId { get; set; }

    /// <summary>
    /// 邮箱
    /// </summary>

    public string Email { get; set; }
}

public class ResumeRescheduleInterviewForm : ResumeRescheduleInterviewForm1
{
    /// <summary>
    /// 时间段，2024/10/12 10:00~2024/10/12 11:00
    /// </summary>
    public override string Time { get; set; }
}

public class ResumeRescheduleInterviewForm1
{
    /// <summary>
    /// 面试官列表
    /// </summary>
    public List<ResumeRecommendFormStaff> InterviewStaffs { get; set; }
    public virtual string Time { get; set; }
}

public class ResumeAssessInterviewForm
{
    /// <summary>
    /// 是否通过
    /// </summary>
    public bool? IsPass { get; set; } = false;

    /// <summary>
    /// 评估内容
    /// </summary>
    public string Content { get; set; }

}

public class ResumeFailInterviewForm
{
    /// <summary>
    /// 简历ID，列表
    /// </summary>
    public List<long> Ids { get; set; }

    /// <summary>
    /// 筛选反馈
    /// </summary>
    public string Content { get; set; }

}


public class ResumeSubscribeInterviewForm
{

    /// <summary>
    /// 时间段列表，["2024/10/12 10:00~2024/10/12 11:00"],最多三个，超过三个取前三
    /// </summary>
    public List<string> Times { get; set; }

    /// <summary>
    /// 备注
    /// </summary>

    public string Remark { get; set; }

}
public class ResumeCancelInterviewForm
{

    /// <summary>
    /// 取消原因
    /// </summary>
    public string CancelReason { get; set; }

}

public class ResumeAssessForm
{
    public string ghrOrEss { get; set; }

}

public class ResumeAttachment
{
    public long? AttachmentID { get; set; }
    public string AttachFileExtension { get; set; }

    public string AttachmentNo { get; set; }

    public string AttachmentType { get; set; }

    public string AttachmentEname { get; set; }
    public string AttachFileName { get; set; }
    public long? AttachFileSize { get; set; }
    public string RelativePath { get; set; }
    public string AttachmentName { get; set; }
    public string RemarkSz { get; set; }

}

public class ResumePhotoAttachment : ResumeAttachment
{
}

public class ResumeLog
{

    /// <summary>
    /// 首次推荐时间
    /// </summary>
    public DateTime? FirstRecommendTime { get; set; }

    /// <summary>
    /// 面试单Id
    /// </summary>
    public long? OrderId { get; set; }

    /// <summary>
    /// 明细
    /// </summary>
    public List<ResumeLogItem> Items { get; set; }

}

public class ResumeLogItem
{
    /// <summary>
    /// 操作时间
    /// </summary>
    public DateTime? Time { get; set; }

    /// <summary>
    /// 操作人
    /// </summary>
    public string Operator { get; set; }

    /// <summary>
    /// 内容
    /// </summary>
    public string Content { get; set; }

    /// <summary>
    /// 来源
    /// </summary>
    public string Source { get; set; }

    /// <summary>
    /// 人力需求单Id
    /// </summary>
    public long? RequestId { get; set; }

    /// <summary>
    /// FlowSignID
    /// </summary>
    public long? FlowSignID { get; set; }

    /// <summary>
    /// workId
    /// </summary>
    public long? WorkId { get; set; }

    /// <summary>
    /// 附件
    /// </summary>
    public List<Ghrs_Attachment> Attachments { get; set; }

    /// <summary>
    /// Offer文件路径
    /// </summary>
    public string OfferFileUrl { get; set; }
}