using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using ECPDAL.Meeting.DTOs; namespace ECPBLL.Meeting.Interfaces; public interface IMeetingBLL { Task GetMeetingAsync(int meetingId, LoginDTO login, CancellationToken ct); /// Meeting-type dropdown (MGCM/GCMTYPEID) — Planning/Review/Standup/Retrospective. Task GetSelectListMeetingAsync(LoginDTO login, CancellationToken ct); /// Generic filter list via CriteriaDTO — see IMeetingDAL.GetMeetingListAsync. Task GetMeetingListAsync(CriteriaDTO? criteriaDTO, LoginDTO login, CancellationToken ct); /// Creates (MeetingId == 0) or updates (MeetingId > 0) a meeting. On create, the /// caller becomes the organizer and its first TMEETINGPARTICIPANT row (accepted, since the /// organizer is implicitly attending). Task SaveMeetingAsync(SaveMeetingDTO dto, LoginDTO login, CancellationToken ct); Task UpdateMeetingStatusAsync(UpdateMeetingStatusDTO dto, LoginDTO login, CancellationToken ct); /// Cancels the meeting (STATUS=3) — TMEETING has no separate row-level status /// column, so Delete cancels rather than hard-deletes. Task DeleteMeetingAsync(int meetingId, LoginDTO login, CancellationToken ct); Task AddMeetingParticipantAsync(AddMeetingParticipantDTO dto, LoginDTO login, CancellationToken ct); Task UpdateParticipantAttendanceAsync(UpdateParticipantAttendanceDTO dto, LoginDTO login, CancellationToken ct); /// Removes a participant — mirrors CollaborationSpaceMember's remove semantics /// (the organizer cannot be removed; must cancel the meeting instead). Task RemoveMeetingParticipantAsync(int meetingId, int userId, LoginDTO login, CancellationToken ct); /// A single participant row — the Details tab's own Get, separate from the /// meeting-detail view's embedded Participants list. Task GetMeetingDetailsAsync(int meetingId, int userId, LoginDTO login, CancellationToken ct); /// All active participants of a meeting, as its own standalone list endpoint — for /// the Details tab's folder. Task GetMeetingDetailsListAsync(int meetingId, LoginDTO login, CancellationToken ct); /// "Invite participant" picker — active users not already a participant. Task GetSelectListMeetingDetailsAsync(int meetingId, LoginDTO login, CancellationToken ct); }