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

export class EventCampDetail extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}


export class EventFunctionAllCamp extends BaseInput {
    /* tslint:disable: variable-name */
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventCamp: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}
export class ParticipantCampAll extends BaseInput {
    /* tslint:disable: variable-name */
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventCamp: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}

export class EventCampStatisticDetail extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventCamp: number = 0,
        public IsEstimate: boolean = false,
        /* tslint:enable: variable-name */

    ) {
        super();
    }
}
export class EventCampUpdateDays extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public IsAutoComputedDays: boolean = false,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
        this.wrapper = "eventCamp"
    }
}
export class EventCampUpdateFunction extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = undefined,
        public ID: number = undefined,
        public ID_PersonLeader: number = undefined,
        public LeaderNote: string = undefined,
        // public LeaderHealthQualification: boolean = undefined,
        // public LeaderHealthQualificationDate: string = undefined,
        public ID_PersonAssistant: number = undefined,
        public AssistantNote: string = undefined,
        // public AssistantHealthQualification: boolean = undefined,
        // public AssistantHealthQualificationDate: string = undefined,
        public ID_PersonMedic: number = undefined,
        public MedicNote: string = undefined,
        public ID_PersonEconomist: number = undefined,
        public EconomistNote: string = undefined,
        public ID_PersonCook: number = undefined,
        public CookNote: string = undefined,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
        this.wrapper = "eventCampUpdateFunctionInput"
    }
}

export class CampEventUpdateFunctionOutput extends BaseOutput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = undefined,
        public ID: number = undefined,
        public ID_PersonLeader: number = undefined,
        public LeaderNote: string = undefined,
        public LeaderHealthQualification: boolean = undefined,
        public LeaderHealthQualificationDate: string = undefined,
        public ID_PersonAssistant: number = undefined,
        public AssistantNote: string = undefined,
        public AssistantHealthQualification: boolean = undefined,
        public AssistantHealthQualificationDate: string = undefined,
        public ID_PersonMedic: number = undefined,
        public MedicNote: string = undefined,
        public ID_PersonEconomist: number = undefined,
        public EconomistNote: string = undefined,
        public ID_PersonCook: number = undefined,
        public CookNote: string = undefined,
        /* tslint:enable: variable-name */
    ) {
        super();
    }
}
export class CampEventDetailOutput extends BaseOutput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public ID_Group: number = 0,
        public ID_EventType: string = '',
        public ID_UserCreate: number = 0,
        public DateCreate: string = '',
        public DisplayName: string = '',
        public ID_Unit: number = 0,
        public Unit: string = '',
        public RegistrationNumber: string = '',
        public StartDate: string = '',
        public EndDate: string = '',
        public GpsLatitude: number = 0,
        public GpsLatitudeText: string = '',
        public GpsLongitude: number = 0,
        public GpsLongitudeText: string = '',
        public Location: string = '',
        public Note: string = '',
        public CancelDecision: string = '',
        public ID_Event: number = 0,
        public ID_EventCampState: string = '',
        public EventCampState: string = '',
        public MobileContact: string = '',
        public MobileContactDisplay: string = '',
        public RegistrationDeadline: string = '',
        public ID_Region: number = 0,
        public Region: string = '',
        public Postcode: string = '',
        public IsFloodArea: boolean = false,
        public IsAutoComputed: boolean = false,
        public ID_PersonApproved: number = 0,
        public PersonApproved: string = '',
        public DateApproved: string = '',
        public ID_PersonApprovedParent: number = 0,
        public PersonApprovedParent: string = '',
        public DateApprovedParent: string = '',
        public DateApprovedExecutive: string = '',
        public TotalDays: number = 0,
        public IsRecovering: boolean = false,
        public CampType: string = '',
        public Units: string = '',
        public EstimateChild: number = 0,
        public EstimateAdult: number = 0,
        public EstimateCount: number = 0,
        public EstimateChildDays: number = 0,
        public EstimatePersonDays: number = 0,
        public IsAutoComputedDays: boolean = false,
        public RealTotalCost: number = 0,
        public IsRealTotalCostAutoComputed: boolean = false,
        public IsRealAutoComputed: boolean = false,
        public IsRealAutoComputedDays: boolean = false,
        public ID_PersonReal: number = 0,
        public PersonReal: string = '',
        public DateReal: string = '',
        public RealAdult: number = 0,
        public RealChild: number = 0,
        public RealCount: number = 0,
        public RealChildDays: number = 0,
        public RealPersonDays: number = 0,
        public HasEstimateStatement: boolean = false,
        public ID_PersonLeader: number = 0,
        public PersonLeader: string = '',
        public PersonLeaderFirstName: string = '',
        public PersonLeaderLastName: string = '',
        public PersonLeaderCivilName: string = '',
        public LeaderPhone: string = '',
        public LeaderPhoneDisplay: string = '',
        public LeaderEmail: string = '',
        public LeaderEmailDisplay: string = '',
        public LeaderCity: string = '',
        public UnitLocation: string = '',
        public PersonStatutory: string = '',
        public Profit: number = 0,
        public ProfitComputed: number = 0,
        public ProfitComputedEstimation: number = 0,
        public ID_CampPlace: number = 0,
        public CampPlace: string = '',

        public ID_UnitArray: string[] = [''],
        /* tslint:enable: variable-name */
    ) {
        super();
    }

}

export class CampEventFunctionAllOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public ID_Event: number = 0,
        public Event: string = '',
        public ID_Person: number = 0,
        public Person: string = '',
        public ID_EventFunctionType: number = 0,
        public EventFunctionType: string = '',
        public Note: string = '',
        public Email: string = '',
        public Phone: string = '',
        public Age: number = 0,
        public HasQualification: boolean = false,
        public IsHealthQualification: boolean = false,
        public HealthQualification: boolean = false,
        public HealthQualificationDate: string = '',
        public EventFunctionTypeKey: string = '',
        public QualificationValidTo: string = '',
        // public ID_EventSpecificationTypeArray: string = '',
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}

export class CampEventParticipantAllOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public Estimate: boolean = false,
        public Real: boolean = false,
        public Days: number = 0,
        public ID_Participant: number = 0,
        public ID_Person: number = 0,
        public Person: string = '',
        public ID_ParticipantType: string = '',
        public ParticipantType: string = '',
        public IsManual: boolean = false,
        public Birthday: string = '',
        public Age: number = 0,
        public Assurance: string = '',
        public Street: string = '',
        public City: string = '',
        public Postcode: string = '',
        public State: string = '',
        public ID_Unit: number = 0,
        public Unit: string = '',
        public UnitRegistrationNumber: string = '',
        public Category: string = '',
        public Note: string = '',
        public CanDelete: boolean = false,
        public IdCardNumber: string = '',
        public IdCardValidTo: string = '',
    ) {
        super();
    }
    /* tslint:enable: variable-name */

}
export interface CampEventStatisticDetail {
    real: EventCampStatisticDetailOutput;
    estimate: EventCampStatisticDetailOutput;
}
export class EventCampStatisticDetailOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID_Login: string = '',
        public ID: number = 0,
        public ID_EventCamp: number = 0,
        public IsEstimate: boolean = false,
        public Benjaminci: number = 0,
        public Vlce: number = 0,
        public Svetluska: number = 0,
        public Skaut: number = 0,
        public Skautka: number = 0,
        public Rover: number = 0,
        public Ranger: number = 0,
        public AdultFemale: number = 0,
        public AdultMale: number = 0,
    ) {
        super();
    }
    /* tslint:enable: variable-name */

}