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; }
}
}