using ECPDAL.Meeting.DTOs;
using GB5Shared.DTO.Framework.Login;
namespace ECPBLL.Meeting.Interfaces;
///
/// The Meeting "Action Items" tab — a thin ECP-facing wrapper over the existing shared TTASK
/// entity (CRMBLL.Task.ITaskBLL), per the ECP preview's own framing: "the same underlying task
/// record used across GB5, not an ECP-only checklist." Every CRM-only field is defaulted by the
/// implementation and never exposed on this interface's DTOs.
///
public interface IMeetingActionItemBLL
{
Task GetMeetingActionItemAsync(int taskId, LoginDTO login, CancellationToken ct);
Task GetMeetingActionItemListAsync(int meetingId, LoginDTO login, CancellationToken ct);
Task SaveMeetingActionItemAsync(SaveMeetingActionItemDTO dto, LoginDTO login, CancellationToken ct);
Task DeleteMeetingActionItemAsync(int taskId, LoginDTO login, CancellationToken ct);
/// Candidate parent tasks for WBS nesting, scoped to one meeting's action items.
/// (Assignee selection reuses the existing user picker, not a Task-specific one.)
Task GetSelectListMeetingActionItemAsync(int meetingId, LoginDTO login, CancellationToken ct);
/// Updates DueDate only. TTASK has no revision-history/audit-trail column for date
/// changes — the reschedule reason is recorded via EventLogPublish only, not persisted on the
/// task row itself (see the type's doc-comment for why "Revised" badges in the ECP preview
/// can't be reconstructed from TTASK alone).
Task RescheduleMeetingActionItemAsync(RescheduleMeetingActionItemDTO dto, LoginDTO login, CancellationToken ct);
}