using System.ComponentModel.DataAnnotations; namespace SimpleAdmin.Application; /// /// 创建新员工入职任务参数。 /// public class OnboardingTaskCreateInput { /// /// 入职业务公司 Id。 /// [IdNotNull(ErrorMessage = "公司Id不能为空")] public long CompanyId { get; set; } /// /// 入职业务部门 Id。 /// [IdNotNull(ErrorMessage = "部门Id不能为空")] public long DepartmentId { get; set; } /// /// 入职任务所属岗位 Id。 /// [IdNotNull(ErrorMessage = "岗位Id不能为空")] public long PositionId { get; set; } /// /// 用工类型:full_time 正式用工,part_time 兼职用工。 /// public string EmploymentType { get; set; } = EmployeeEmploymentType.FullTime; /// /// 本次任务使用的入职模板 Id。 /// [IdNotNull(ErrorMessage = "入职模板Id不能为空")] public long OnboardingTemplateId { get; set; } /// /// 创建任务时由人事预先填写的合同变量。 /// public List ContractVariables { get; set; } = new(); /// /// 创建任务时指定的审核人用户 Id。 /// public long? AssignedReviewerUserId { get; set; } /// /// 链接过期时间;实际有效期由系统配置计算。 /// public DateTime? LinkExpireAt { get; set; } /// /// 业务备注。 /// [Required(ErrorMessage = "人事备注不能为空")] public string Remark { get; set; } } /// /// 批量复制入职任务参数。 /// public class OnboardingTaskCopyInput { /// /// 被复制的原入职任务 Id。 /// [IdNotNull(ErrorMessage = "原入职任务Id不能为空")] public long SourceTaskId { get; set; } /// /// 在原任务之外需要新建的任务数量。 /// public int Count { get; set; } /// /// 每条新任务分别填写的人事备注。 /// public List Items { get; set; } = new(); } /// /// 单条复制任务的个性化参数。 /// public class OnboardingTaskCopyItemInput { /// /// 新任务的人事备注,用于区分候选人和专属链接。 /// [Required(ErrorMessage = "人事备注不能为空")] public string Remark { get; set; } } /// /// 创建任务时填写的单个合同变量。 /// public class OnboardingInitialContractVariableInput { /// /// 变量所属合同模板版本 Id。 /// [IdNotNull(ErrorMessage = "合同模板版本Id不能为空")] public long ContractTemplateVersionId { get; set; } /// /// DOCX 中的完整变量编码,例如 hr.MonthlySalary。 /// public string VariableCode { get; set; } /// /// 人事录入的变量值。 /// public string VariableValue { get; set; } } /// /// 入职任务创建结果。 /// public class OnboardingTaskCreatedOutput { /// /// 入职任务 Id。 /// public long TaskId { get; set; } /// /// 入职任务编号。 /// public string TaskNo { get; set; } /// /// 新生成的员工填写链接 Token,仅在创建结果中返回。 /// public string LinkToken { get; set; } /// /// 员工填写链接过期时间。 /// public DateTime ExpiresAt { get; set; } } /// /// 批量复制入职任务结果。 /// public class OnboardingTaskCopyOutput { /// /// 本次复制生成的全部新任务及独立链接信息。 /// public List Tasks { get; set; } = new(); }