namespace SimpleAdmin.Application;
///
/// 正式员工的一份合同在审核建档时冻结的业务快照。
/// 常用日期和薪资使用独立列,全部标准及自定义变量同时保存在 VariablesJson 中。
///
[SugarTable("ob_employee_contract_snapshot", TableDescription = "员工合同快照")]
[Tenant(SqlSugarConst.DB_DEFAULT)]
public class ObEmployeeContractSnapshot : BaseEntity
{
/// 正式员工 Id。
public long EmployeeId { get; set; }
/// 来源入职任务 Id。
public long TaskId { get; set; }
/// 来源任务合同 Id,同一任务合同只允许生成一份员工快照。
public long TaskContractId { get; set; }
/// 合同模板 Id。
public long TemplateId { get; set; }
/// 合同模板版本 Id。
public long TemplateVersionId { get; set; }
/// 合同名称快照。
public string ContractName { get; set; }
/// 合同类型快照。
public string ContractType { get; set; }
/// 合同开始日期。
public DateTime? ContractStartDate { get; set; }
/// 合同结束日期。
public DateTime? ContractEndDate { get; set; }
/// 合同期限原始文本。
public string ContractTerm { get; set; }
/// 试用期开始日期。
public DateTime? ProbationStartDate { get; set; }
/// 试用期结束日期。
public DateTime? ProbationEndDate { get; set; }
/// 试用期期限原始文本。
public string ProbationTerm { get; set; }
/// 明确使用 hr.ProbationSalary 保存的试用薪资;不从其他工资项目推算。
public decimal? ProbationSalary { get; set; }
/// 基本工资。
public decimal? BaseSalary { get; set; }
/// 岗位工资。
public decimal? PositionSalary { get; set; }
/// 绩效津贴。
public decimal? PerformanceAllowance { get; set; }
/// 全勤奖。
public decimal? AttendanceBonus { get; set; }
/// 转正后薪资。
public decimal? RegularSalary { get; set; }
/// 工作地点或城市。
public string WorkCity { get; set; }
/// 合同中的岗位名称。
public string PositionName { get; set; }
/// 合同中的员工工号。
public string EmployeeNo { get; set; }
///
/// 以 VariableCode 为键保存该合同当时的全部变量元数据和值。
/// 导出时通过稳定编码判断变量是否存在,不依赖可修改的中文名称。
///
[SugarColumn(ColumnDataType = "json", IsNullable = false)]
public string VariablesJson { get; set; }
/// 快照结构版本。
public int SnapshotVersion { get; set; } = 1;
/// 快照生成时间。
public DateTime SnapshotAt { get; set; }
}