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

export class GenEventDetailOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        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 TotalDays: number = 0,
        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 Event: string = '',
        public ID_EventGeneralState: string = '',
        public EventGeneralState: string = '',
        public ID_UnitEducative: number = 0,
        public UnitEducative: string = '',
        public UnitEducativeRegistrationNumber: string = '',
        public ID_EventGeneralType: number = 0,
        public EventGeneralType: string = '',
        public ID_EventGeneralScope: number = 0,
        public EventGeneralScope: string = '',
        public Street: string = '',
        public Postcode: string = '',
        public Region: string = '',
        public State: string = '',
        public ForeignParticipants: number = 0,
        public LeaderParticipants: number = 0,
        public AssistantParticipants: number = 0,
        public IsStatisticAutoComputed: boolean = false,
        public ChildDays: number = 0,
        public PersonDays: number = 0,
        public Target: string = '',
        public Program: string = '',
        public ID_PersonClosed: number = 0,
        public PersonClosed: string = '',
        public DateClosed: string = '',
        public EventSpecificationType: string = '',
        public IsAutoComputedDays: boolean = false,
        public TotalParticipants: number = 0,
        // public ID_EventSpecificationTypeArray: string = '',
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}
export class GenEventFunctionAllOutput 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 ID_EventSpecificationTypeArray: string = '',
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}

export class GenEventParticipantAllOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public ID_EventGeneral: number = 0,
        public ID_Participant: number = 0,
        public ID_Person: number = 0,
        public Person: string = '',
        public Age: number = 0,
        public Birthday: 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 Days: number = 0,
        public Note: string = '',
        public ParticipantCategory: string = '',
        public CanDelete: boolean = false,
    ) {
        super();
    }
    /* tslint:enable: variable-name */

}
export class GenEventStatisticOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public ID_ParticipantCategory: number = 0,
        public ParticipantCategory: string = '',
        public Count: number = 0,
    ) {
        super();
    }
    /* tslint:enable: variable-name */

}
export class GenEventUpdateFunctionOutput 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 ID_PersonAssistant: number = undefined,
        public AssistantNote: string = undefined,
        public ID_PersonEconomist: number = undefined,
        public EconomistNote: string = undefined,
        public ID_PersonMedic: number = undefined,
        public MedicNote: string = undefined,
        /* tslint:enable: variable-name */
    ) {
        super();
    }
}



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

export class EventStatisticAllEventGeneral extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventGeneral: number = 0,
        public ID_ParticipantCategory: number = 0,
        /* tslint:enable: variable-name */

    ) {
        super();
        if (!ID_ParticipantCategory) {
            this.ID_ParticipantCategory = undefined;
        }
    }
}
export class EventGeneralUpdateClose extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super();
        this.wrapper = "eventGeneral"
    }
}
export class EventGeneralUpdateOpen extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super();
        this.wrapper = "eventGeneral"
    }
}
export class EventGeneralUpdateReport extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public Target: string = '',
        public Program: string = '',
        /* tslint:enable: variable-name */
    ) {
        super();
        this.wrapper = "eventGeneral"
    }
}
export class EventGeneralUpdateDays 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 = "eventGeneral"
    }
}
export class EventGeneralUpdateFunction 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 ID_PersonAssistant: number = undefined,
        public AssistantNote: string = undefined,
        public ID_PersonEconomist: number = undefined,
        public EconomistNote: string = undefined,
        public ID_PersonMedic: number = undefined,
        public MedicNote: string = undefined,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
    }
}

