"use client";
import { RowDetails, SelectedPayment, UserPayment } from "@/types";
import { createContext, useContext, useState } from "react";

export const UserPaymentContext = createContext<UserPayment | null>(null);

export const UserPaymentProvider = ({ children }) => {
    const [rowDetails, setRowDetails] = useState<RowDetails>({
        courseId: '',
        courseOfferId: '',
        courseOfferPrice: '',

        // training-courses
        discount: '',
        thisUserId: '',
        thisCompanyId: '',
        courseRegistrationId: '',
        userToken: '',
        thisRowPrice: '',
        theImgUploaded: '',
        installmentId: '',
        installmentScheduleId: '',

        // course fees
        courseFeeId: '',
        courseFeePrice: '',

        // vat
        totalPrice: "",
        priceBeforeDiscount: "",
        vat: "",
        taxPercentage: ""
    });

    const [selectedPayment, setSelectedPayment] = useState<SelectedPayment>({
        location: '', // where's course place ex: (الرياض / السعوديه)
        currencyTitle: '', // currency title (SAR || ريال سعودي)
        date: '', // date of course
        startDate: '',
        endDate: '',
        duration: '', // duration in days
        payment: '', // payment selection
        paymentInAr: '',
        dueDate: '',
        monthlyPayment: '',
        installmentCount: '',
        currentInstallmentNumber: '',
    });
    return (
        <UserPaymentContext.Provider value={{ selectedPayment, setSelectedPayment, rowDetails, setRowDetails }}>
            {children}
        </UserPaymentContext.Provider>
    )
};
export const useUserSelection = () => useContext(UserPaymentContext);