namespace trakker.Models { public class PTask { public enum RecursiveRoot { TASK_ID = 0, PARENT_TASK_ID = 1 } public PTask() { TaskId = Guid.NewGuid().ToString(); DueDate = DateTime.Now; CreatedAt = DateTime.Now; UpdatedAt = DateTime.Now; } public string? TaskId { get; set; } = string.Empty; public string? ProjectId { get; set; } = string.Empty; public string? Title { get; set; } = string.Empty; public string? Description { get; set; } public string Status { get; set; } = "todo"; public string Priority { get; set; } = "medium"; public DateTime? DueDate { get; set; } public double? EstimatedHours { get; set; } = 0; public double? ActualHours { get; set; } = 0; public double? HourlyRate { get; set; } = 0; public string? ParentTaskId { get; set; } public DateTime? CreatedAt { get; set; } public DateTime? UpdatedAt { get; set; } public override string ToString() { return @$" TaskId: {TaskId} ProjectId: {ProjectId} Title: {Title} Description: {Description} Status: {Status} Priority: {Priority} DueDate: {DueDate} EstimatedHours: {EstimatedHours} ActualHours: {ActualHours} HourlyRate: {HourlyRate} ParentTaskId: {ParentTaskId} CreatedAt: {CreatedAt} UpdatedAt: {UpdatedAt} "; } } public class PTaskFS { public string GUID { get; set; } = string.Empty; public string Node { get; set; } = string.Empty; public string Parent { get; set; } = string.Empty; public double? HourlyRate { get; set; } = 0; public string ProjectId { get; set; } = string.Empty; public override string ToString() { return @$" GUID: {GUID} Node: {Node} Parent: {Parent} HourlyRate: {HourlyRate} ProjectId: {ProjectId} "; } } public class PTaskComment { public PTaskComment() { TaskCommentId = Guid.NewGuid().ToString(); } public string? TaskCommentId { get; set; } = string.Empty; public string? TaskId { get; set; } = string.Empty; public string? Comment { get; set; } = string.Empty; public DateTime? CreatedAt { get; set; } } }