using TMSDAL.DTO.EvaluationResponse;
using TMSDAL.DTO.EvaluationTemplate;
namespace TMSDAL.DTO.Evaluation
{
namespace TMSDAL.DTO.EvaluationPlan
{
public class EvaluationPlanDTO
{
// =====================================================
// PRIMARY KEY
// =====================================================
public int EvaluationPlanId { get; set; }
// =====================================================
// BUSINESS COLUMNS
// =====================================================
///
/// -1 = Multi-programme evaluation
///
public int ProgrammeId { get; set; } = -1;
///
/// Joined from MTRAININGPROGRAMME — display reference for FK
///
public string? ProgrammeTitle { get; set; }
public string PlanTitle { get; set; } = string.Empty;
///
/// 0 = L1 Reaction, 1 = L2 Learning,
/// 2 = L3 Behaviour, 3 = L4 Results
///
public byte Kirkpatrick { get; set; } = 0;
///
/// 0 = Immediate; 30/90/180/365 = follow-up days
///
public int EvalWindowDays { get; set; } = 0;
///
/// 0 = Participant, 1 = Supervisor, 2 = HR,
/// 3 = Manager, 4 = BusinessHead
///
public byte RespondentType { get; set; } = 0;
///
/// 0 = OnCompletion, 1 = ScheduledDate, 2 = ManualTrigger
///
public byte EvalTrigger { get; set; } = 0;
///
/// JSON array of reminder days e.g. [7, 3, 1]
///
public string? ReminderDays { get; set; }
///
/// 0 = No, 1 = Yes
///
public byte IsMultiProgramme { get; set; } = 0;
///
/// 0 = No, 1 = Yes
///
public byte IsActive { get; set; } = 1;
// =====================================================
// STANDARD FIELDS
// =====================================================
public short Version { get; set; }
public byte Status { get; set; }
public short SortOrder { get; set; }
public byte SourceType { get; set; }
public int TenantId { get; set; }
public int CreatedById { get; set; }
public DateTime CreatedOn { get; set; }
public int ModifiedById { get; set; }
public DateTime ModifiedOn { get; set; }
// =====================================================
// CHILD COLLECTION
// =====================================================
public List? Templates { get; set; }
}
}
public class SubmitEvaluationDTO
{
public int EvalInstanceId { get; set; }
public List Responses { get; set; } = new();
}
}