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

export class EventEducationCourseDetailEnroll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public ID_Person: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
        if (!ID_Person) {
            this.ID_Person = undefined;
        }
    }
}

export class EventEducationCourseEnrollReminderInsert extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_Person: number = 0,
        public ID: number = 0,
        public ID_EventEducationCourse: number = 0,
        public Hours: number = 0,
    ) {
        super();
        this.wrapper = 'eventEducationCourseEnrollReminder'
    }
}
export class ParticipantEducationInsertEnroll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventEducationCourse: number = 0,
        public ID_Person: number = 0,
        public Phone: string = '',
        public Acknownledgement: boolean = false,
        public Affirmation: boolean = false,
        public EventQuestion: string = '',
    ) {
        super();
        this.wrapper = 'participantEducationInsertEnrollInput'
    }
}
export class ParticipantEducationUpdateEnroll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventEducationCourse: number = 0,
        public ID_Person: number = 0,
        public Phone: string = '',
        public Acknownledgement: boolean = false,
        public Affirmation: boolean = false,
        public EventQuestion: EventQuestionAllOutput[] = [],
        public PersonVerdictHealth: string = '',
    ) {
        super();
        this.wrapper = 'participantEducationUpdateEnrollInput'
    }
}

export class EventEducationCourseEnrollReminderDetail extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super();
        this.wrapper = 'eventEducationCourseEnrollReminderDetailInput'
    }
}
export class EventQuestionAll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventEducation: number = 0,
        public ID_EventEducationCourse: number = 0,
        public ID_ParticipantEducation: number = 0

        /* tslint:enable: variable-name */
    ) {
        super();
        if (!ID_ParticipantEducation) {
            this.ID_ParticipantEducation = undefined;
        }
        this.wrapper = 'eventQuestionAllInput'
    }
}
export class EventQuestionAnswerAll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID_EventEducation: number = 0,
        public ID_EventEducationCourse: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super();
        this.wrapper = 'eventQuestionAllInput'
    }
}


export class EduEventCourseDetailEnrollOutput extends BaseOutput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public IsActive: boolean = false,
        public ID_EventEducation: number = 0,
        public RegistrationDeadline: Date = null,
        public EventEducation: string = '',
        public EventEducationCourse: string = '',
        public ID_EventEducationType: number = 0,
        public EventEducationType: string = '',
        public ID_Unit: number = 0,
        public Unit: string = '',
        public UnitNameWithRegistrationNumber: string = '',
        public RegistrationNumber: string = '',
        public UnitFullName: string = '',
        public PersonDisplayName: string = '',
        public PersonEmail: string = '',
        public PersonPhone: string = '',
        public Address: string = '',
        public IdentificationCode: string = '',
        public FirstName: string = '',
        public LastName: string = '',
        public NickName: string = '',
        public Street: string = '',
        public City: string = '',
        public Postcode: string = '',
        public ID_UnitMembership: number = 0,
        public UnitMembership: string = '',
        public UnitMembershipWithRegistrationNumber: string = '',
        public RegistrationNumberMembership: string = '',
        public UnitFullNameMembership: string = '',
        public IsMember: boolean = false,
        public ID_Person: number = 0,
        public Person: string = '',
        public LoginFrom: Date = null,
        public LoginTo: Date = null,
        public LoginActive: boolean = false,
        public LoginPassed: boolean = false,
        public LoginInFuture: boolean = false,
        public ID_ParticipantEducation: number = 0,
        public IsVerdictGroupRequired: boolean = false,
        public ID_PersonVerdictGroup: number = 0,
        public PersonVerdictGroup: string = '',
        public DateVerdictGroup: Date = null,
        public VerdictGroup: string = '',
        public IsVerdictDistrictRequired: boolean = false,
        public ID_PersonVerdictDistrict: number = 0,
        public PersonVerdictDistrict: string = '',
        public DateVerdictDistrict: Date = null,
        public VerdictDistrict: string = '',
        public IsVerdictAreaRequired: boolean = false,
        public ID_PersonVerdictArea: number = 0,
        public PersonVerdictArea: string = '',
        public DateVerdictArea: Date = null,
        public VerdictArea: string = '',
        public IsVerdictHealthRequired: boolean = false,
        public ID_DocumentVerdictHealth: number = 0,
        public PersonVerdictHealth: string = '',
        public DateVerdictHealth: Date = null,
        public Agreement: boolean = false,
        /* tslint:enable: variable-name */

    ) {
        super();
    }
}

export class EduEventEnrollReminderDetailOutput extends BaseOutput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public ID: number = 0,
        public ID_EventEducationCourse: number = 0,
        public EventEducationCourse: string = '',
        public ID_EventEducation: number = 0,
        public EventEducation: string = '',
        public ID_Person: number = 0,
        public Person: string = '',
        public Reminder: Date | string = '',
        public ReminderSent: Date | string = '',
        public Created: Date | string = '',
        public Sent: Date | string = '',
        public Hours: number = 0,
        public LoginFrom: Date | string = '',
        public LoginTo: Date | string = '',
        /* tslint:enable: variable-name */

    ) {
        super();
    }
}
export class EventQuestionAllOutput extends BaseOutput {
    constructor(
        /* tslint:disable: variable-name */
        public ID: number = 0,
        public ID_QuestionType: string = '',
        public QuestionType: string = '',
        public ID_EventEducationCourse: number = 0,
        public EventEducationCourse: string = '',
        public DisplayName: string = '',
        public Help: string = '',
        public Note: string = '',
        public ID_QuestionRequirement: string = '',
        public QuestionRequirement: string = '',
        public IsRequired: boolean = false,
        public IsRequiredEntry: boolean = false,
        public ID_ParticipantEducation: number = 0,
        public ID_EventQuestionAnswer: number = 0,
        public EventQuestionAnswerValue: string = '',
        public ID_DocumentEventQuestionAnswer: number = 0,
        /* tslint:enable: variable-name */

    ) {
        super();
    }
}


