namespace ECPDAL.Meeting.DTOs; /// /// ECP-facing shape for a Meeting Action Item — a thin surface over the existing shared TTASK /// entity (CRMBLL.Task.ITaskBLL / CRMDAL.DTO.Task.TaskDTO), per the ECP preview's own framing: /// "the same underlying task record used across GB5, not an ECP-only checklist." MeetingId maps /// to TaskDTO.ObjectId with ObjectTypeId fixed to OBJECTMEETING; every CRM-only field (BizTransactionType, /// PartyBranch, Asset, Machine, Allocation, WBS codes, ...) is defaulted by /// MeetingActionItemBLL's translation layer and never exposed here. /// public class MeetingActionItemDTO { public int TaskId { get; set; } public int MeetingId { get; set; } public string Title { get; set; } = string.Empty; public int AssignedTo { get; set; } public string? AssignedToName { get; set; } public DateOnly DueDate { get; set; } public int ParentTaskId { get; set; } = -1; public byte WbsLevel { get; set; } public byte Status { get; set; } // TaskStatus, passthrough from TTASK } /// Input for SaveMeetingActionItem — creates (TaskId == 0) or updates (TaskId > 0). public class SaveMeetingActionItemDTO { public int TaskId { get; set; } public int MeetingId { get; set; } public string Title { get; set; } = string.Empty; public int AssignedTo { get; set; } public DateOnly DueDate { get; set; } public int ParentTaskId { get; set; } = -1; } /// Input for RescheduleMeetingActionItem — the ECP preview's "Reschedule" action (new /// due date + free-text reason). TTASK has no revision-history column, so Reason is logged via /// EventLogPublish only and is not persisted on the task row itself. public class RescheduleMeetingActionItemDTO { public int TaskId { get; set; } public DateOnly NewDate { get; set; } public string? Reason { get; set; } } /// Dropdown-picker row for GetSelectListMeetingActionItem — assignable users and /// candidate parent tasks (for WBS nesting), scoped to one meeting. public class MeetingActionItemPicklistDTO { public int TaskId { get; set; } public string Title { get; set; } = string.Empty; public byte WbsLevel { get; set; } }