using ECPDAL.Collaboration.DTOs;
using FastEndpoints;
using GB5Shared.DTO.Framework.Criteria;
namespace ECPSL.Collaboration.Parameters;
public record GetCollaborationSpaceParameters(
[property: FromHeader] string Login,
[property: QueryParam] int CollaborationSpaceId
);
public record GetCollaborationSpaceListParameters(
[property: FromHeader] string Login
);
/// CriteriaDTO accepted for convention-consistency with every other GetSelectList*
/// endpoint (see GetSelectListCorrespondenceType); unused today since this picker's scope is
/// fixed to "spaces the current user owns or is a member of" with no further filter.
public record GetSelectListCollaborationSpaceParameters(
[property: FromHeader] string Login,
[property: FromBody] CriteriaDTO? CriteriaDTO
);
public record SaveCollaborationSpaceParameters(
[property: FromHeader] string Login,
[property: FromBody] SaveCollaborationSpaceDTO Space
);
public record DeleteCollaborationSpaceParameters(
[property: FromHeader] string Login,
[property: QueryParam] int CollaborationSpaceId
);
public record AddCollaborationSpaceMemberParameters(
[property: FromHeader] string Login,
[property: FromBody] AddCollaborationSpaceMemberDTO Member
);
public record RemoveCollaborationSpaceMemberParameters(
[property: FromHeader] string Login,
[property: QueryParam] int CollaborationSpaceId,
[property: QueryParam] int UserId
);
public record GetCollaborationSpaceMemberParameters(
[property: FromHeader] string Login,
[property: QueryParam] int CollaborationSpaceId,
[property: QueryParam] int UserId
);
public record GetCollaborationSpaceMemberListParameters(
[property: FromHeader] string Login,
[property: QueryParam] int CollaborationSpaceId
);
/// CriteriaDTO accepted for convention-consistency with every other GetSelectList*
/// endpoint; unused today — this picker's scope is fixed to "not already a member of this space".
public record GetSelectListCollaborationSpaceMemberParameters(
[property: FromHeader] string Login,
[property: QueryParam] int CollaborationSpaceId,
[property: FromBody] CriteriaDTO? CriteriaDTO
);