import { SortParams } from '~/pages/event/types/EventSorting';
import { GenParticipant } from '~/pages/event/types/genEvent';
import { GenEventReport } from '../../containers/gen/gen-event-detail-page/gen-event-detail-page.component';
import { TeamMember } from '../../containers/gen/gen-event-update-leader-modal/gen-event-update-leader-modal.component';
import { GenEventStateEnum } from './gen-event-detail.state';
export class LoadGenEventDetail {
    static readonly type = '[GenEventDetail] Load GenEventDetail';
    constructor(public id: number) {
    }
}

export class LoadGenEventLeaders {
    static readonly type = '[GenEventDetail] Load GenEvent Leaders';
    constructor(public id: number) {
    }
}


export class LoadGenEventParticipants {
    static readonly type = '[GenEventDetail] Load GenEvent Participants';
    constructor(public id: number) {
    }
}

export class LoadGenEventStatisticAll {
    static readonly type = '[GenEventDetail] Load Gen Event Statistic All';
    constructor(public id: number) {
    }
}

export class GenEventUpdateState {
    static readonly type = '[GenEventDetail] General Event Update State';
    constructor(public id: number, public currentStateId: GenEventStateEnum) {
    }
}
export class GenEventUpdateReport {
    static readonly type = '[GenEventDetail] General Event Update Report';
    constructor(public id: number, public report: GenEventReport) {
    }
}

export class SetGenEventParticipantSortParams {
    static readonly type = '[GenEventDetail] Set Gen Event Participant SortParams';
    constructor(public payload: SortParams) {
    }
}
export class GenEventUpdateParticipantList {
    static readonly type = '[GenEventDetail] Upsert Gen Event Participant List';
    constructor(public payload: GenParticipant) {
    }
}
export class GenEventRemoveParticipantFromList {
    static readonly type = '[GenEventDetail] Gen Event Remove Participant';
    constructor(public participantId: number) {
    }
}
export class GenEventUpdateFunctions {
    static readonly type = '[GenEventDetail] Gen Event UpdateFunctions';
    constructor(public eventId: number, public members: TeamMember[]) {
    }
}