using FastEndpoints;
using ECPDAL.Meeting.DTOs;
using GB5Shared.DTO.Framework.Criteria;
namespace ECPSL.Meeting.Parameters;
public record GetMeetingParameters(
[property: FromHeader] string Login,
[property: QueryParam] int MeetingId
);
/// CriteriaDTO accepted for convention-consistency with every other GetSelectList*
/// endpoint; unused today since MGCM's meeting-type list has nothing yet to filter by.
public record GetSelectListMeetingParameters(
[property: FromHeader] string Login,
[property: FromBody] CriteriaDTO? CriteriaDTO
);
/// Generic filter list — see IMeetingDAL.GetMeetingListAsync for the supported
/// FieldName/OperationType combinations (OrganizerUserId, ParticipantUserId, StartOn/EndOn range,
/// MeetingTypeId, Status, ObjectTypeId/ObjectId). CriteriaDTO may be null/empty for no filter.
public record GetMeetingListParameters(
[property: FromHeader] string Login,
[property: FromBody] CriteriaDTO? CriteriaDTO
);
public record SaveMeetingParameters(
[property: FromHeader] string Login,
[property: FromBody] SaveMeetingDTO Meeting
);
public record UpdateMeetingStatusParameters(
[property: FromHeader] string Login,
[property: FromBody] UpdateMeetingStatusDTO MeetingStatus
);
public record DeleteMeetingParameters(
[property: FromHeader] string Login,
[property: QueryParam] int MeetingId
);
public record AddMeetingParticipantParameters(
[property: FromHeader] string Login,
[property: FromBody] AddMeetingParticipantDTO Participant
);
public record UpdateParticipantAttendanceParameters(
[property: FromHeader] string Login,
[property: FromBody] UpdateParticipantAttendanceDTO Attendance
);
public record RemoveMeetingParticipantParameters(
[property: FromHeader] string Login,
[property: QueryParam] int MeetingId,
[property: QueryParam] int UserId
);
public record GetMeetingDetailsParameters(
[property: FromHeader] string Login,
[property: QueryParam] int MeetingId,
[property: QueryParam] int UserId
);
public record GetMeetingDetailsListParameters(
[property: FromHeader] string Login,
[property: QueryParam] int MeetingId
);
/// CriteriaDTO accepted for convention-consistency with every other GetSelectList*
/// endpoint; unused today — this picker's scope is fixed to "not already a participant".
public record GetSelectListMeetingDetailsParameters(
[property: FromHeader] string Login,
[property: QueryParam] int MeetingId,
[property: FromBody] CriteriaDTO? CriteriaDTO
);