namespace OKRDAL.DTOs; public class GoalDTO { public int GoalId { get; set; } public string Code { get; set; } = string.Empty; public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public int OKRCycleId { get; set; } public string OKRCycleName { get; set; } = string.Empty; public int ObjectiveId { get; set; } public string ObjectiveName { get; set; } = string.Empty; public int KRAId { get; set; } // -1 = no KRA linkage public string KRAName { get; set; } = string.Empty; public int EmployeeId { get; set; } public string EmployeeName { get; set; } = string.Empty; public short GoalType { get; set; } // 0=Quantitative 1=Qualitative public decimal TargetValue { get; set; } public decimal CurrentValue { get; set; } // denormalized from latest TGOALTRACK public decimal CurrentProgress { get; set; } // denormalized 0-100 public decimal GoalSelfPercentage { get; set; } public decimal GoalEvaluatorPercentage { get; set; } public decimal Weightage { get; set; } public short GoalPriority { get; set; } // 0=Low 1=Medium 2=High 3=Critical public short GoalSourceType { get; set; } // 0=Manual 1=Cascaded 2=Template 3=AppraisalLinked public int ParentGoalId { get; set; } // -1 = top-level public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public short Confidence { get; set; } // 0=Low 1=Medium 2=High public short Status { get; set; } // 0=NotStarted 1=InProgress 2=OnTrack 3=AtRisk 4=Completed 5=Cancelled public int TenantId { get; set; } public int CreatedBy { get; set; } public DateTime CreatedOn { get; set; } public int ModifiedBy { get; set; } public DateTime ModifiedOn { get; set; } }