import { APP_ID } from '~/constants/api.constants';
import { BaseInput } from '~/core/entities/input/baseInput';
import { BaseOutput } from '~/core/entities/output/baseOutput';

export class PersonAllEventCamp extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventCamp: number = 0,
        public DisplayName: string = undefined,
        // public ID: number = 0,
        public IdentificationCode: string = undefined,
        public IdentificationCodeStartsWith: string = undefined,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}
export class PersonAllEventCampMulti extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventCamp: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}
export class DegreeTypeAll extends BaseInput {
    constructor(
    ) {
        super(APP_ID);
    }
}

class Person {
    constructor(
        /* tslint:disable: variable-name */
        public FirstName: string = undefined,
        public LastName: string = undefined,
        public NickName: string = undefined,
        public Note: string = undefined,
        public Degrees: Degree[] = undefined,
        // public Contancts: string[] = undefined,

        /* tslint:enable: variable-name */
    ) {

    }
}

export class ParticipantCampInsert extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = undefined,
        public ID_EventCamp: number = undefined,
        public ID_Person: number = undefined,
        public Person: Person = undefined,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}
export class ParticipantCampDelete extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public DeletePerson: boolean = false,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}
export class ParticipantCampUpdate extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = undefined,
        public ID: number = undefined,
        public Estimate: boolean = undefined,
        public Real: boolean = undefined,
        public Days: number = undefined,
        public Note: string = undefined,
        public ID_Person: number = undefined,
        public ID_Participant: number = undefined,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
        this.wrapper = 'participantCamp'
    }
}

export class CampEventPersonOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public DisplayName: string = '',
        public HasCookQualification: boolean = false,
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}
export class ParticipantCampInsertOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public ID_Person: number = 0,
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}
export class Degree extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public DisplayName: string = '',
        public IsInFrontOf: boolean = false,
        public Order: number = 0,
        public Note: string = '',
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}
export class CampEventMultiPersonOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public DisplayName: string = '',
        public BirthDay: string = '',
        public ID_Unit: number = 0,
        public RegistrationNumber: string = '',
        public Unit: string = '',
        public MembershipType: string = '',
        public MembershipCategory: string = '',
        public IsParticipant: boolean = false,
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}