import { IEventCourseRq } from "../classroom/classroom-rq.model";
import { CourseTypeCRq } from "../course/course-rq.model";
import { English_Levels } from "../course/courses.model";
export interface getdiscountAllRq {
    token: string;
}
export interface Coupon {
    code?: number;
    discount_ref: string;
    name: string;
    type: number;
    discount_type: string;
    percentage: number;
    start_date: Date;
    end_date: Date;
    state: number;
    description: string;
    discount_academic_plan: DiscountAcademicPlan[];
}
export interface DiscountAcademicPlan {
    code: number;
    name: string;
}
export interface DiscountRq {
    token: string;
    discount_ref: string;
    name: string;
    type: number;
    discount_type: number;
    percentage: number;
    start_date: Date;
    end_date: Date;
    state: number;
    description: string;
    plan: number[];
}
export interface DiscountUpdateRq {
    token: string;
    code?: number;
    start_date: Date;
    end_date: Date;
    state: number;
    description: string;
    plan: number[];
}
export interface TypeCoupon {
    code?: number;
    name?: string;
}
export interface TypeDiscount {
    code?: number;
    name?: string;
}
export interface TypeState {
    code?: number;
    name?: string;
}
export interface Student {
    name: string;
    document: number;
    phone: number;
    plan: string;
    state: number;
}
export interface State {
    code?: number;
    name?: string;
}
export interface Plan {
    code?: number;
    name?: string;
}
export interface IObtainAllCoursewallet {
    token: string;
}
export interface IAllCourseWalletByCoodinatorRs {
    ip_applicant: string;
    status: number;
    message: IMessageRq;
    data: ICourseWalletByCoodinatorRs[];
}
export interface ICourseWalletByCoodinatorRs {
    course_wallet_code: number;
    user_code: IUserCodeRq;
    course_code: ICourseCodeRq;
    course_wallet_status_code: ICourseWalletStatusCodeRq;
}
export interface ICourseCodeRq {
    code: number;
    course_schedule: string[];
    teacher: string;
    course_type: CourseTypeCRq;
    to_start: Date;
    start_date: Date;
    finish_date: Date;
    capacity: number;
    more_days: number | null;
    english_level: string;
    agreement: string;
    course_modality: ICourseModalityRq;
}
export interface ICourseModalityRq {
    code: number;
    name: string;
}
export interface ICourseWalletStatusCodeRq {
    code: number;
    status: string;
    color_status: string;
}
export interface IUserCodeRq {
    code: number;
    name: string;
    last_name: string;
    nick_name: string;
    email: string;
    email_ipt: string;
    role: number;
    phone_indicative: number;
    phone_number: string;
    gender: number;
    birthdate: Date | null;
    city: number;
    id_card_type: number;
    id_card: string;
    user_status: number;
}
export interface IMessageRq {
    code: number;
    message: string;
}
export interface IAssignRequestRq {
    token: string;
    userCode: number;
    codeCourse: number | null;
}
export interface IObtainAvailableCourseRs {
    token: string;
    cod_code: number;
    name_event: string;
}
export interface AllCourseAvailableByStudentRs {
    ip_applicant: string;
    status: number;
    message: IMessageRq;
    data: IAvailableCoursesRq;
}
export interface IAvailableCoursesRq {
    availableCourses: ICourseAvailableRq[] | any[];
    overdue: IOverdueRq | any[];
    unitAdvance: boolean;
}
export interface ICourseAvailableRq {
    numberClases: number;
    currentEvent: IEventCourseRq;
    courseData: ICourseDataNamesRq;
    classroom: IClassroomElementRq[];
}
export interface IClassroomElementRq {
    classroom: IClassroomClassroomRq;
    time_start: string;
    time_end: string;
    days: string[];
}
export interface IClassroomClassroomRq {
    code: number;
    name: string;
    course_modality: number;
    capacity: number;
    id_calendar: string;
    adress: string;
    updated_at: Date;
    created_at: Date;
}
export interface ICourseDataNamesRq {
    code: number;
    course_schedule: number;
    teacher: string;
    course_type: string;
    to_start: Date;
    start_date: Date;
    finish_date: Date;
    capacity: number;
    more_days: null;
    english_level: string;
    agreement: string;
    course_modality: string;
}
export interface IOverdueRq {
    codeStudent: number;
    numDues: number;
    nameStudent: string;
    lastnameStudent: string;
    documentStudent: string;
    dueAmount: number;
    colorDay: string;
}
export interface IGetCodByPaymentPlanRq {
    token: string;
    studentCode: number;
}
export interface IUpdateAmountCodPaymentsRq {
    token: string;
    valueAmount: number;
    codeCodPayment: number;
}
export interface IcodStudentRs {
    code: number;
    course: number;
    course_type: number;
    agreement: number;
    english_level: number;
    student: IStudentRs;
    parent: number | null;
    aditional_information: number;
    adviser: number;
    cod_status: number;
    cod_price: number | null;
}
export interface IStudentRs {
    code: number;
    name: string;
    last_name: string;
    nick_name: string;
    email: string;
    email_ipt: null | string;
    role: number;
    phone_indicative: number;
    phone_number: string;
    gender: number;
    birthdate: Date;
    city: number;
    id_card_type: number;
    id_card: string;
    user_status: number;
}
export interface IParamsUpdateDateCodPaymentsRq {
    token: string;
    PaymenDate: Date;
    codeCod: number;
}
export interface ICancelStudentFeePaymentRq {
    token: string;
    quotas_affected: IQuotasAffectedRq[];
}
export interface IQuotasAffectedRq {
    cod_code: number;
    english_level: number;
    receipt_code: number;
    quota_code: number;
    credit_code: number;
    credit_amount: number;
    fee_number: number;
    student_code: number;
    transaction_type: number;
}
export interface IObtainStudentPaymentsByGroupingCodRs {
    cod_code: number;
    receipt_code: number;
    student_code: number;
    amount_pay: number;
    discount_pay: number;
    concept_code: number;
    concept_name: string;
    invoice_cancelled: number;
    full_name: string;
    date_pay: Date;
}
export interface ICancelStudentReceiptRq {
    token: string;
    quotas_affected: IQuotasAffectedRq[] | null;
    receipt: number | null;
}
export interface ICancelledReceiptByDateRq {
    token: string;
    code_type_consult: number;
    start_date: Date | null;
    finish_date: Date | null;
}
export interface IPaymentsReceivedByUserRq {
    token: string;
    code_type_consult: number;
    start_date: Date;
    finish_date: Date;
    user_code: number;
}
export interface IObtainPaymentsReceivedByUserRs {
    payments: IPaymentsReceivedByUserRs[];
    total_amount_by_method: {
        [key: string]: number;
    };
}
export interface IPaymentsReceivedByUserRs {
    payment_method: number;
    cod_code: number | null;
    english_level: number | null;
    receipt_code: number;
    student_code: number;
    amount_pay: number;
    discount_pay: number;
    concept_code: number;
    concept_name: string;
    invoice_cancelled: number;
    full_name: string;
    date_pay: Date;
}
export interface ITotalCashReceiptsByDateAndUserRs {
    payments: IPaymentBillGraphRs[];
    total_by_method: ITotalByMethodRs[];
    number_transactions: number;
}
export interface IPaymentBillGraphRs {
    code: number;
    payment_method: number;
    payment_services: number;
    payment_wallet: number;
    bank: number;
    generated_for: number;
    generated_by: number;
    type_movements: number;
    total_amount: number;
    payment_amount: number;
    outstanding_amount: number;
    positive_amount: number;
    discount: number;
    payer_name: string;
    payer_document: string;
    academic_plan: number;
    payment_reference: null | string;
    payment_date: Date | null;
    observation: null | string;
    invoice_cancelled: number;
    created_at: Date;
}
export interface ITotalByMethodRs {
    code: number;
    name: string;
    amount: number;
}
export interface IObtainCourseByCoodDiffParamRq {
    token: string;
    modality: number;
    course_status: number;
    coordinator: number;
    english_level: IEnglishLevelRq[];
}
export interface IEnglishLevelRq {
    code: number;
    name: string;
}
export interface NameCommonExpenses {
    name: string;
    token: string;
}
export interface IObtainPaymentTranHistoryRq {
    token: string;
    course_code: number;
}
export interface IObtainPaymentTranHistoryRs {
    code: number;
    document: number;
    full_name: string;
    phone: string;
    email: string;
    overdue_payments: IOverduePaymentsRs;
    outstanding_payments: IOutstandingPaymentsRs;
    payments_made: number;
    previos_course: null | number;
    color_due: string;
    fuldataCourse: IFuldataCourseRs;
}
export interface IOutstandingPaymentsRs {
    outstanding_payments: number;
    number_installments: number;
}
export interface IOverduePaymentsRs {
    Overdue_payments: number;
    number_installments: number;
}
export interface IFuldataCourseRs {
    code: number;
    course_schedule: string[];
    teacher: string;
    course_type: ICourseTypeCluAndTheRs;
    to_start: Date;
    start_date: Date;
    finish_date: Date;
    capacity: number;
    more_days: null;
    english_level: string;
    agreement: string;
    course_modality: ICourseModalityRq;
    is_renovation: number;
    is_from: null;
    is_club: number;
    is_visible: number;
    created_at: Date;
}
export interface ICourseTypeCluAndTheRs {
    code: number;
    name: string;
    label: string;
    number_class: number;
    number_class_club: number;
    academic_plan: string;
    theory_classes: number;
    club_classes: number;
}
export interface IObtainPaymentTranHistoryByCodRq {
    token: string;
    course_code: number;
    cod_code: number;
}
export interface IObtainStudentPaymentByDiffParamRq {
    token: string;
    user: string;
}
export interface IObtainStudentPaymentByDiffParamRs {
    code: number;
    document: string;
    full_name: string;
    phone: string;
    email: string;
    overdue_payments: IOverduePaymentsRs;
    outstanding_payments: IOutstandingPaymentsRs;
    payments_made: number;
    previous_course: null;
    color_due: string;
    fulldataCourse: IAllCoursesViewedRs;
    current_cod: ICurrentCodRs;
    all_courses_viewed: IAllCoursesViewedRs[];
    user_wallet: IUserWalletRs;
}
export interface IAllCoursesViewedRs {
    code: number;
    course_schedule: string[];
    teacher: string;
    course_type: ICourseTypeCluAndTheRs;
    to_start: Date;
    start_date: Date;
    finish_date: Date;
    capacity: number;
    more_days: null;
    english_level: string;
    agreement: string;
    course_modality: ICourseModalityRq;
    is_renovation: number;
    is_from: null;
    is_club: number;
    is_visible: number;
    updated_at?: Date;
    created_at: Date;
}
export interface ICurrentCodRs {
    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 IOutstandingPaymentsRs {
    outstanding_payments: number;
    number_installments: number;
}
export interface IOverduePaymentsRs {
    Overdue_payments: number;
    number_installments: number;
}
export interface IUserWalletRs {
    user_code: number;
    full_name: string;
    email_ipt: string;
    phone_number: string;
    is_visible: number;
}
export interface IpaymentBillEgressRq {
    payment_method: number;
    payment_services: number;
    payment_wallet: number;
    bank: number;
    generated_for: number;
    generated_by: string;
    total_amount: number;
    payment_amount: number;
    outstanding_amount: number;
    positive_amount: number;
    discount: number;
    payer_name?: string;
    payer_document?: number;
    codeAcademic_plan: number;
    observation: string;
    ref_payment?: string;
    date_payment: Date;
    common_expenses: number;
    type_movements: number;
    manual_receipt: number;
}
export interface IcashClosingRq {
    token: string;
}
export interface InfoCashClosingRq {
    token: string;
    code: number;
    code_user: number;
}
export interface IcashClosingDateRq {
    token: string;
    start_date: string;
    finish_date: string;
    code_user: number;
}
interface IPaymentWalletRs {
    name: string;
    cantidad: number;
    total: number;
}
export interface IcashClosingDataRs {
    totalIncome: number;
    totalEgress: number;
    paymentMethodIncomeInfo: IPaymentWalletRs[];
    paymentMethodEgressInfo: IPaymentWalletRs[];
    paymentWalletEgressInfo: IPaymentWalletRs[];
    paymentWalletIncomeInfo: IPaymentWalletRs[];
}
export interface IncomesAndEgressRq {
    token: string;
    code_type_consult: number;
    code_type_movement: number;
    start_date?: string;
    finish_date?: string;
    user_code: number;
}
export interface IObatinBalacesByCoodinatorRq {
    token: string;
    course_modality: number;
    course_status: number;
    user_code: number;
    english_level: English_Levels[];
    start_date: Date;
    end_date: Date;
}
export interface IObatinDetailedIncomeByUserAndDateRq {
    token: string;
    user_code: number;
    start_date: Date;
    end_date: Date;
}
export interface IObatinDetailedIncomeByUserAndDateRs {
    income: ResponsePay;
    expenses: ResponsePay;
}
export interface ResponsePay {
    listPayment: IListPaymentRs[];
    sumByMethod: ISumByMethodPayRs[];
    totalAmount: number;
    dateConsult: IDateConsultRs;
    userConsulted: string;
}
export interface IDateConsultRs {
    startDate: Date;
    endDate: Date;
}
export interface IListPaymentRs {
    payment_code: number;
    method_name: string;
    method_code: number;
    service: string;
    wallet: string;
    bank: string;
    fullname_student: string;
    fullname_user: string;
    total_amount: number;
    payment_amount: number;
    outstanding_amount: number;
    positive_amount: number;
    discount: number;
    father_name: null | string;
    pather_document: null | string;
    academic_plan: number;
    referenec_payment: null | string;
    create_date: Date;
    observation: null | string;
    invoice_cancelled: number;
}
export interface ISumByMethodPayRs {
    Metodo_pago_code: number;
    Metodo_pago: string;
    Total_por_metodo: number;
}
export interface IObtainPaymentsMadeByDatesRs {
    amountCancel: number;
    codCode: number;
    creation_date: Date;
    code: number;
    payment_method: number;
    payment_services: number;
    payment_wallet: number;
    bank: number;
    generated_for: number;
    generated_by: number;
    type_movements: number;
    common_expenses: number;
    total_amount: number;
    payment_amount: number;
    outstanding_amount: number;
    positive_amount: number;
    discount: number;
    payer_name: string;
    payer_document: string;
    academic_plan: number;
    payment_reference: null | string;
    payment_date: Date | null;
    observation: null | string;
    invoice_cancelled: number;
    manual_receipt: null | string;
    cod_course: number;
    payment_method_name: string;
    payment_services_name: string;
    payment_wallet_name: string;
    bank_name: string;
    fullname_fathers: null | string;
    generated_for_name: string;
    generated_by_name: string;
    type_movements_name: string;
    academic_plan_name: string;
    user_wallet: IUserWalletRs;
}
export interface IUserWalletRs {
    user_code: number;
    full_name: string;
    email_ipt: string;
    phone_number: string;
    is_visible: number;
}
export interface SendEmailPayment {
    email: string;
    nameStudent: string;
    phoneStudent: string;
    paymentDate: string;
    academicPlan: string;
    payerDocument: string;
    totalAmount: number;
    paymentAmount: number;
    outstandingAmount: number;
    discount?: number;
    paymentMethod: string;
    bank?: number;
    observation?: string;
    codesRefers: number[];
    codeDiscount: number;
    code: number;
}
export interface SendEmailPaymentCancellationRS {
    email: string;
    studentName: string;
    receiptCode: number;
    cancellationDate: string;
    amount: number;
    concept: string;
}
export interface IPaymentCorrelativeRq {
    token: string;
    type_category: number;
    start_date: Date;
    end_date: Date;
}
export interface IPaymentCorrelativeRq {
    code_type_consult: number | null;
    finish_date: Date;
    start_date: Date;
    token: string;
    type_category: number;
}
export interface IObtainGatewayPaymentRecordRq {
    cod: number;
}
export interface IUpdateEpaycoPaymentRq {
    ref_validation: string;
    payment_ref: string;
    x_ref_payco: number;
    transaction_id: string;
    status_code: number;
    status_name: string;
    amount: number;
    type_payment: string;
    bank_name: string;
    epayco_pin: string;
    currency_code: string;
}
export interface IEpaycoPaymentUpdateRs {
    gatePayment: IGatePaymentRs;
    selfManag: ISelfManagRs;
    epaBilll: IEpaBilllRs;
    updUser: IUpdUserRs | null;
}
export interface IEpaBilllRs {
    code: number;
    payment_ref: string;
    amount: number;
    epayco_bank: string;
    epayco_payment_type: string;
    epayco_pin: string;
    epayco_status: string;
    epayco_ref: string;
}
export interface IGatePaymentRs {
    code: number;
    payment_service: number;
    cod: number;
    payment_amount: number;
    payment_ref: string;
    epayco_ref: string;
    epayco_status: number;
}
export interface ISelfManagRs {
    code: number;
    cod: number;
    course: number;
    payment_selection: number;
    payment_ref: string;
    epayco_ref: string;
    need_pay: number;
    is_pay: number;
}
export interface IUpdUserRs {
    code: number;
    name: string;
    last_name: string;
    nick_name: null;
    email: string;
    email_ipt: null;
    role: number;
    phone_indicative: number;
    phone_number: string;
    gender: number;
    birthdate: Date;
    city: number;
    id_card_type: number;
    id_card: string;
    token: string;
    user_status: number;
    password_change: number;
    status_asing: number;
    footprint: null;
}
export interface IAccountsBalanceRq {
    token: string;
    user_code: number;
    course_modality: number;
    course_status: number;
    english_level: IEnglishLevelRq[];
}
export interface IAccountsBalanceRs {
    courseCode: number;
    EnglishLevel: string;
    StartDate: Date;
    FinishDate: Date;
    CourseType: string;
    CourseModality: string;
    CourseRenovation: string;
    total_student: number;
    ActiveStudents: number;
    StudentsSuspendedPay: number;
    FrozenStudents: number;
    WithdrawnStudents: number;
    scholarshipStudents: IScholarshipStudentRs[];
    studentsWithCashPayments: number;
    studentsWithCreditPayments: number;
    studentsWithScholarships: number;
    lumpSumPaymentsToReceived: number;
    lumpSumPaid: number;
    overdueLumpSum: number;
    lumpSumReceivable: number;
    lossLumpSumPaymentsToReceived: number;
    overallTotalLossOfPaused: number;
    overallTotalLossOfRetirees: number;
    lossLumpSumPaid: number;
    StudentsActive: IStudentsPayRs;
    StudentsSuspendedPayment: IStudentsPayRs;
    StudentsPausedProcess: IStudentsPayRs;
    StudentsRetired: IStudentsPayRs;
}
export interface IStudentsPayRs {
    count: number;
    total_overInstallments: number;
    total_amount_expected: number;
    total_amount_paid: number;
    total_amount_receivable: number;
    total_amount_overdue: number;
    data: IStudentsActiveRs[];
}
export interface IStudentsActiveRs {
    cod_code: number;
    course_code: number;
    code: number;
    document: string;
    full_name: string;
    phone: string;
    email: string;
    overdue_payments: IOverduePaymentsRs;
    outstanding_payments: IOutstandingPaymentsRs;
    payments_made: IPaymentsMadeRs;
    previos_course: null | number;
    color_due: string;
}
export interface IOutstandingPaymentsRs {
    outstanding_payments: number;
    number_installments: number;
}
export interface IPaymentsMadeRs {
    made_payments: number;
    number_installments: number;
}
export interface IScholarshipStudentRs {
    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;
    created_at: Date;
    course_code: number;
}
export interface IElectronicInvoiceRS {
    token: string;
    start_date: Date | null;
    end_date: Date | null;
}
export interface IGetFullPaymentInformationRq {
    token: string;
    page?: number;
}
export interface IGetFullPaymentInformationRs {
    ip_applicant: string;
    status: number;
    message: IMessageRq;
    data: IPaymentBillFullDataRs;
}
export interface IPaymentBillFullDataRs {
    data: IPaymentBillFullRs[];
    pagination: IPaginationRs;
}
export interface IPaymentBillFullRs {
    payment_bill_code: number;
    payment_method: number;
    payment_services: number;
    payment_wallet: number;
    bank_name: string;
    generated_for: number;
    generated_by: number;
    type_movements: number;
    common_expenses: number;
    total_amount: number;
    payment_amount: number;
    outstanding_amount: number;
    positive_amount: number;
    discount: number;
    payer_name: string | null;
    payer_document: string | null;
    academic_plan: number;
    payment_reference: string | null;
    payment_date: string | null;
    observation: string | null;
    invoice_cancelled: number;
    manual_receipt: string | null;
    correlative: string | null;
    transfer_code: number | null;
    electronic_invoice: string | null;
    payment_bill_created_at: string;
    payment_bill_updated_at: string;
    transfer_amount: number | null;
    initial_amount: number | null;
    transfer_bank_name: string | null;
    transfer_date: string | null;
    reference_number: string | null;
    transfer_status: string | null;
    transfer_created_by: number | null;
    transfer_updated_by: number | null;
    image_url: string | null;
    transfer_created_at: string | null;
    transfer_updated_at: string | null;
    payer_code: number;
    payer_name_user: string;
    payer_last_name: string;
    payer_email: string;
    payer_role: number;
    payer_phone: string;
    payer_created_at: string;
    creator_code: number;
    creator_name: string;
    creator_last_name: string;
    creator_email: string;
    creator_role: number;
    creator_phone: string;
    creator_created_at: string;
    cod_code: number;
    course: number;
    course_type: number;
    agreement: number;
    english_level: number;
    student: number;
    cod_parent: number | null;
    aditional_information: number;
    adviser: number;
    cod_status: number;
    cod_price: number | null;
    cod_paid: number;
    cod_created_at: string;
    cod_updated_at: string;
    parent_code: number | null;
    parent_name: string | null;
    parent_last_name: string | null;
    parent_id_card: string | null;
    parent_phone: string | null;
    occupation: string | null;
    office_adrress: string | null;
    parent_created_at: string | null;
    parent_updated_at: string | null;
}
export interface IPaginationRs {
    total: number;
    per_page: number;
    current_page: number;
    last_page: number;
    from: number;
    to: number;
}
export interface ISearchPaymentBillRq {
    token: string;
    page?: number;
    reference_number?: string;
    payer_name?: string;
    electronic_invoice?: string;
    payment_bill_code?: string;
}
export interface ISearchPaymentBillRs {
    ip_applicant: string;
    status: number;
    message: {
        code: number;
        message: string;
    };
    data: IPaymentBillFullDataRs;
}
export interface IGetSummaryByCoordinatorRq {
    token: string;
    start_date?: string;
    end_date?: string;
    grace_period_days?: number;
}
export {};
