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();
}