namespace OKRDAL.DTOs; public class ObjectiveDTO { public int ObjectiveId { get; set; } public string ObjectiveName { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public int MissionId { get; set; } // -1 = none public int PerspectiveId { get; set; } public string PerspectiveName { get; set; } = string.Empty; public int StrategyId { get; set; } // -1 = none public string Remarks { get; set; } = string.Empty; public int SortOrder { get; set; } public short Status { get; set; } // 0=Inactive 1=Active public int Version { get; set; } public short SourceType { get; set; } public int CreatedById { get; set; } public DateTime CreatedOn { get; set; } public int ModifiedById { get; set; } public DateTime ModifiedOn { get; set; } public int DomainId { get; set; } // -1 = none public int SectionId { get; set; } // -1 = none public short ForLevel { get; set; } // 0=Employee 1=Department 2=OU 3=Company public int ForObjectId { get; set; } public short ForPeriodType { get; set; } public int ForPeriodId { get; set; } // stands in for OKRCycleId public string OKRCycleName { get; set; } = string.Empty; public DateTime ForPeriodFrom { get; set; } public DateTime ForPeriodTo { get; set; } public int OwnerId { get; set; } public string OwnerName { get; set; } = string.Empty; public int LinkedObjectiveId { get; set; } // -1 = none public int ParentObjectiveId { get; set; } // -1 = root public string ParentName { get; set; } = string.Empty; public string ParentObjectiveIds { get; set; } = string.Empty; public short ObjectiveStatus { get; set; } // 0=NotStarted 1=OnTrack 2=OffTrack 3=NeedsWork 4=Achieved 5=Dropped public short SecurityLevel { get; set; } public bool PublicPrivate { get; set; } public DateTime? DueDate { get; set; } public decimal Weightage { get; set; } public decimal Percentage { get; set; } public short ObjectivePriority { get; set; } // 0=Low 1=Medium 2=High 3=Critical public int TaskId { get; set; } // -1 = none public short ObjectiveType { get; set; } // 0=Personal 1=Team 2=Organization 3=Overall public int TemplateId { get; set; } // -1 = manually created public decimal OverallProgress { get; set; } // Tree support — populated by recursive CTE endpoint only public int TreeLevel { get; set; } }