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

export class EduEventOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public DisplayName: string = '',
        public DisplayNameCombined: string = '',
        public ID_Event: number = 0,
        public Event: string = '',
        public ID_EventEducationState: string = '',
        public EventEducationState: string = '',
        public Web: string = '',
        public EmailContact: string = '',
        public PhoneContact: string = '',
        public DateApproved: Date = null,
        public Grant: number = 0,
        public ID_GrantType: string = '',
        public GrantType: string = '',
        public ID_GrantAdvanceType: string = '',
        public GrantAdvanceType: string = '',
        public DateClosed: Date = null,
        public ID_PersonClosed: number = 0,
        public PersonClosed: string = '',
        public LogoFileName: string = '',
        public ID_DocumentLogo: number = 0,
        public ID_DocumentLogoPreview: number = 0,
        public ID_DocumentLogoMiniature: number = 0,
        public PropagationFileName1: string = '',
        public PropagationFileName2: string = '',
        public PropagationFileName3: string = '',
        public LoginSkautis: boolean = false,
        public LoginLocation: string = '',
        public Description: string = '',
        public DatePublished: Date = null,
        public DateWaitingForOrganizerApprove: Date = null,
        public DateWaitingForReporterApprove: Date = null,
        public DateWaitingForHKVS: Date = null,
        public DateGrantRequest: Date = null,
        public DateGrantConfirm: Date = null,
        public DateDepositSent: Date = null,
        public DateBillPaid: Date = null,
        public DateRestGrantSent: Date = null,
        public RegistrationDeadline: Date = null,
        public CapacityCourse: number = 0,
        public CapacitySubstitute: number = 0,
        public ID_EventEducationType: number = 0,
        public ID_EventEducationGroup: string = '',
        public EventEducationType: string = '',
        public EventEducationGroup: string = '',
        public StartDate: Date = null,
        public EndDate: Date = null,
        public ProjectExtension: string = '',
        public FinalReportExtension: string = '',
        public AreExamsApproved: boolean = false,
        public DisapproveNote: string = '',
        public WaterApproved: Date = null,
        public WaterDisapproveNote: string = '',
        public IsWaterman: boolean = false,
        public Publicized: Date = null,
        public RejectionNote: string = '',
        public ID_EventEducationCourse: number = 0,
        public EventEducationCourse: string = '',
        public LoginFrom: string = null,
        public LoginTo: string = null,
        public ID_EventEducationCourseEnrollReminder: number = 0,
    ) {
        super();
    }
    /* tslint:enable: variable-name */
}

export class EduEventType extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public ID_EventEducationGroup: string = '',
        public EventEducationGroup: string = '',
        public DisplayName: string = '',
        public ShortName: string = '',
        public IsQualifyingExam: boolean = false,
        public IsDecree: boolean = false,
        public IsForester: boolean = false,
        public Note: string = ''
        /* tslint:enable: variable-name */
    ) {
        super();
    }
}
export class EduEventMyActionsOutput extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: number = 0,
        public ID_Event: number = 0,
        public LogoFileName: string = '',
        public ID_DocumentLogo: number = 0,
        public ID_DocumentLogoPreview: number = 0,
        public ID_DocumentLogoMiniature: number = 0,
        public StartDate: string = '',
        public EndDate: string = '',
        public ID_EventEducationCourse: number = 0,
        public ID_EventEducationType: number = 0,
        public EventEducationType: string = '',
        public DisplayName: string = '',
        public DisplayNameCombined: string = '',
        public ID_Unit: number = 0,
        public Unit: string = '',
        public UnitFullName: string = '',
        public RegistrationNumber: string = '',
        public ID_RelationType: string = '',
        public RelationType: string = '',
        public LoginSkautis: boolean = false,
        public LoginFrom: string = '',
        public LoginTo: string = '',
        public CapacityCourse: number = 0,
        public CapacitySubstitute: number = 0,
        public CanLogin: boolean = false,
        public ID_ParticipantEducation: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super();
    }
}
export class EduEventGroup extends BaseOutput {
    /* tslint:disable: variable-name */
    constructor(
        public ID: string = '',
        public DisplayName: string = '',
        public Order: number = 0,
        public IsActive: boolean = false,
        public Note: string = ''
        /* tslint:enable: variable-name */
    ) {
        super();
    }
}

export class EventEducationAll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = '',
        public Year: number = null,
        public DisplayName: string = '',
        public ID_EventEducationType?: number,
        public ID_EventEducationGroup?: string
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
        if (!this.Year) {
            this.Year = undefined;
        }
        if (!ID_EventEducationGroup) {
            this.ID_EventEducationGroup = undefined;
        }
        if (!ID_EventEducationType) {
            this.ID_EventEducationType = undefined;
        }
    }
}
export class EventEducationAllMyActions extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public ID_Login: string = undefined,
        public Year: number = undefined,
        public IsFuture: boolean = undefined,
        public ID_EventEducationType: number = undefined,
        public ID_RelationType: string = undefined,
        // public ID: number = 0,
        /* tslint:enable: variable-name */
    ) {
        super(APP_ID);
        if (!this.Year) {
            this.Year = undefined;
        }
        if (!ID_EventEducationType) {
            this.ID_EventEducationType = undefined;
        }
    }
}

export class EventEducationTypeAll extends BaseInput {
    constructor(
        /* tslint:disable: variable-name */
        public appId: string = APP_ID,
        public ID_Login: string = ''
        /* tslint:enable: variable-name */

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

    ) {
        super(appId);
    }
}
