import { EventQuestionAllOutput } from '~/pages/event/entities/edu-event.types';
import { EduEventOutput } from '~/pages/event/entities/edu-event-search.types';

export class LoadEventEnrollDetail {
    static readonly type = '[EduEventEnrollDetail] Load enroll event detail';
    constructor(
        public courseId: number,
        public personId: number = null,
    ) {
    }
}
export class InsertEventEducationCourseEnrollReminder {
    static readonly type = '[InsertEventEducationCourseEnrollReminder] Insert Event Education Course Enroll Reminder';
    constructor(
        public event: EduEventOutput, public hours: number
    ) {
    }
}
export interface InsertEduCourseEndrollmentInput {
    eventId: number, phone: string,
    acknowledgement: boolean, affirmation: boolean,
    questions: string
}
export interface UpdateEduCourseEndrollmentInput {
    eventId: number, phone: string,
    acknowledgement: boolean, affirmation: boolean,
    questions: EventQuestionAllOutput[], verdictHealth: string
}
export class InsertEventEducationCourseEnrollment {
    static readonly type = '[Edu Event Actions] Insert Event Education Course Enrollment';
    constructor(
        public input: InsertEduCourseEndrollmentInput
    ) {
    }
}
export class UpdateEventEducationCourseEnrollment {
    static readonly type = '[Edu Event Actions] Update Event Education Course Enrollment';
    constructor(
        public input: UpdateEduCourseEndrollmentInput
    ) {
    }
}
export class LoadEduEventReminderDetail {
    static readonly type = '[LoadEduEventReminderDetail] Load Edu Event Reminder Detail';
    constructor(
        public id: number,
    ) {
    }
}

export class LoadEduEventQuestionAll {
    static readonly type = '[LoadEduEventQuestionAll] Load Edu Event Question All';
    constructor(
        public eventId: number,
        public eventCourseId: number,
        public participantId: number = null,
    ) {
    }
}

