import { ICourseTypeCluAndTheRs, IMessageRq } from "../budget/budget.model";
import { English_Levels } from "../course/courses.model";
import { UserCourse } from "../notes/notes.interface";
export interface GetCourseByTypeRq {
    token: string;
    course_type: number;
}
export interface GetStudentByCourse {
    token: string;
    course: number;
}
export interface GetStudentByTeacherRq {
    token: string;
    teacher_code: number;
    param: string;
}
export interface GetCertificate {
    token: string;
    idcard: number;
    course: number;
}
export interface GetLastStudentCodRq {
    token: string;
    code: number;
}
export interface GetAllStudentByTeacherRq {
    token: string;
    teacher_code: number;
}
export interface ClassRoomRQI {
    token: string;
    name: string;
    course_modality: number;
    capacity: number;
    id_calendar: string;
    address: string;
    updated_at?: string;
    created_at?: string;
    code?: number;
}
export interface ClassRoomRq {
    ip_applicant: string;
    status: number;
    message: IMessageRq;
    data: string | Data;
}
export interface Data {
    name: string;
    course_modality: number;
    capacity: number;
    id_calendar: string;
    adress: string;
    updated_at: string;
    created_at: string;
    code: number;
}
export interface IObtainClasTypeRq {
    code: number;
    name: string;
}
export interface IManageCreatedScherduleEventsRq {
    token: string;
    week_days: string[];
    course_events: ICourseEventRq[];
}
export interface ICourseEventRq {
    codeClassRoom: number;
    codeTeacher: number;
    colorEvent: number;
    courseCode: number;
    dateCreation: Date | null;
    descriptionEvent: string;
    end: Date;
    locationEvent: string;
    start: Date;
    title: string;
}
export interface IManageCreatedScherduleEventsRs {
    dataCourseEvent: IDataCourseEventRs[];
    dataCourseSchedule: IDataCourseScheduleRs;
}
export interface IDataCourseEventRs {
    code: number;
    course_code: number;
    date_event: Date;
    name_event: string;
    description_event: string;
}
export interface IDataCourseScheduleRs {
    code: number;
    course_schedule: number;
    teacher: number;
    course_type: number;
    to_start: Date;
    start_date: Date;
    finish_date: Date;
    capacity: number;
    more_days: null;
    english_level: number;
    agreement: number;
    course_modality: number;
}
export interface IParamsObtainCoursesByTypeCourseInCreatedCoursesRs {
    token: string;
    course_type: number;
    course_modality: number;
    english_level: number;
}
export interface IweekDaysRq {
    name: string;
    key: string;
    code: number;
}
export interface ICourseTypeByAcademicRs {
    code: number;
    name: string;
    label: string;
    number_class: number;
    number_class_club: number;
    academic_plan: number;
    theory_classes: number;
    club_classes: number;
}
export interface IgetAvailableCoursesByLevStaModalRq {
    token: string;
    modality: number;
    status: number;
    english_level: English_Levels[];
}
export interface IGetCoursesAvailableForExchangeRq {
    token: string;
    course_modality: number;
    course_type: number;
    course_wallet_status: number;
    english_level: number;
    teacher: number;
    cod_code: number;
}
export interface IGetCoursesAvailableForExchangeRs {
    current_information: ICurrentInformationRs;
    available_courses: IAvailableCourses[];
}
export interface IAvailableCourses {
    code: number;
    course_schedule: number;
    teacher: ITeacherCourseRs;
    course_type: ICourseTypeCluAndTheRs;
    to_start: Date;
    start_date: Date;
    finish_date: Date;
    capacity: number;
    more_days: number | null;
    english_level: IRecurringInformationRs;
    agreement: IRecurringInformationRs;
    course_modality: IRecurringInformationRs;
    is_renovation: number;
    is_from: number | null;
    is_club: number;
    is_visible: number;
    created_at: Date;
    available_capacity: number;
    real_available_capacity: number;
    available_classroom: string;
    classesGiven: IClassesGivenInTheCourseRs;
    lastClassGiven: ILastClassGivenInTheCourseRs;
    schedule_detail_theory: IScheduleDetailRs;
    schedule_detail_club: IScheduleDetailRs;
}
export interface IRecurringInformationRs {
    code: number;
    name: string;
}
export interface IClassesGivenInTheCourseRs {
    ClassesGivenTheory: number;
    ClassesGivenClub: number;
}
export interface ILastClassGivenInTheCourseRs {
    TheoryLastClassGiven: ILastClassGivenRs;
    ClublastClassGiven: ILastClassGivenRs;
}
export interface ILastClassGivenRs {
    code: number;
    course_code: number;
    date_event: Date;
    name_event: string;
    description_event: string;
}
export interface IScheduleDetailRs {
    ClassDays: string;
    Times: ITimesCourseRs;
}
export interface ITimesCourseRs {
    StarTime: string;
    EndTime: string;
}
export interface ICurrentInformationRs {
    cod: ICodGetCourseRs;
    courseType: ICourseTypeCluAndTheRs;
    assignedCourse: AssignedCourse;
    userCourse: UserCourse;
    classesGivenTheory: number;
    classesGivenClub: number;
    lastClassGivenTheory: ILastClassGivenRs;
    lastClassGivenClub: ILastClassGivenRs;
    theoryClassesViewed: IClassesViewedRs[];
    clubClassesViewed: IClassesViewedRs[];
    totalClassesViewed: ITotalClassesViewedRs[];
}
export interface AssignedCourse {
    course_theory: number;
    course_club: number;
}
export interface IClassesViewedRs {
    attendance: number;
    is_attended: number;
    course_event: number;
    name_event: string;
    date_event: Date;
    cod: number;
    course: number;
}
export interface ICodGetCourseRs {
    code: number;
    course: number;
    course_type: number;
    agreement: number;
    english_level: number;
    student: number;
    parent: number;
    aditional_information: number;
    adviser: number;
    cod_status: number;
    cod_price: number;
    cod_paid: number;
    updated_at: Date;
    created_at: Date;
}
export interface ITotalClassesViewedRs {
    course_event: number;
    code: number;
    is_attended: number;
}
export interface ITeacherCourseRs {
    code: number;
    name: string;
    last_name: string;
    full_name: string;
}
