using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Model { /// /// Concrete action plans for contacting/intervening with the respondent. /// public class ActionPlan { public int Id { get; set; } [Required] public int ResponseId { get; set; } [ForeignKey("ResponseId")] public Response? Response { get; set; } [Required] public string Title { get; set; } = string.Empty; public string? Description { get; set; } /// /// Type: ImmediateContact, CounselingReferral, WorkplaceAccommodation, FollowUpAssessment, ManagementAlert /// [Required] public string ActionType { get; set; } = "ImmediateContact"; /// /// Priority: Urgent, High, Normal, Low /// [Required] public string Priority { get; set; } = "Normal"; /// /// Status: Pending, InProgress, Completed, Cancelled /// public string Status { get; set; } = "Pending"; public string? AssignedTo { get; set; } public string? AssignedToEmail { get; set; } public DateTime? ScheduledDate { get; set; } public DateTime? CompletedDate { get; set; } public string? CompletionNotes { get; set; } public string CreatedByName { get; set; } = string.Empty; public string? CreatedByEmail { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime? UpdatedAt { get; set; } } }