import { CampEventFunctionAllOutput } from '../../entities/camp-event-detail.types';
import { CampParticipant } from '../../types/camp';
import { SortParams } from '../../types/EventSorting';

export class LoadCampEventDetail {
    static readonly type = '[CampEventDetail] Load CampEventDetail';
    constructor(public id: number) {
    }
}
export class LoadCampUnits {
    static readonly type = '[CampEventDetail] Load Camp Units';
    constructor(public ids: string[]) {
    }
}

export class LoadCampEventLeaders {
    static readonly type = '[CampEventDetail] Load Camp Event Leaders';
    constructor(public id: number) {
    }
}

export class LoadCampEventParticipants {
    static readonly type = '[CampEventDetail] Load Camp Event Participants';
    constructor(public id: number) {
    }
}
export class LoadCampEventStatisticDetail {
    static readonly type = '[CampEventDetail] Load Camp Event Statistic Detail';
    constructor(public id: number) {
    }
}
export class SetCampEventParticipantSortParams {
    static readonly type = '[CampEventDetail] Set Camp Event Participant SortParams';
    constructor(public payload: SortParams) {
    }
}
export class CampEventUpdateParticipantList {
    static readonly type = '[CampEventDetail] Upsert Camp Event Participant List';
    constructor(public payload: CampParticipant) {
    }
}
export class CampEventRemoveParticipant {
    static readonly type = '[CampEventDetail] Camp Event Remove Participant';
    constructor(public participantId: number) {
    }
}
export class CampEventUpdateFunctions {
    static readonly type = '[CampEventDetail] Camp Event Update Functions';
    constructor(public eventId: number, public members: CampEventFunctionAllOutput[]) {
    }
}