import { initializeApp } from "firebase-admin/app";
initializeApp();
import { deleteUserPermanently, userAdded } from "./user-functions";
import {
  changeLastMessage,
  changeMessageStatus,
  createChatRoomToDoctor,
  messageNotification,
} from "./chat-functions";
import { deleteDoctorAccount, doctorAdded } from "./doctor-functions";
import { generateToken } from "./agora-functions";
import {
  purchaseTimeslot,
  refundStripe,
  stripeWebhook,
  createOrderTopUpStripe,
} from "./stripe-functions";
import { confirmConsultation, rescheduleTimeslot } from "./timeslot-functions";
import {
  notificationStartAppointment,
  notificationVideoCallListen,
} from "./notification-function";
import { withdrawRequest } from "./withdraw-functions";
import {
  purchaseFreeTimeSlot,
  purchaseTimeSlotWithWallet,
} from "./payment-functions";
import { callNotification } from "./video-call-functions";
import {
  paymobCreateOrder,
  paymobPaymentSuccessHTTPMessage,
  paymobPaymentWebhook,
} from "./payment-gateway/paymob-functions";
import {
  razorpayWebhook,
  requestRazorpayPayment,
} from "./payment-gateway/razorpay-functions";
import {
  midtransWebhook,
  requestMidtransPayment,
} from "./payment-gateway/midtrans-functions";
import { requestCreateWallet } from "./user-wallet-functions";
exports.userAdded = userAdded;

exports.purchaseTimeslot = purchaseTimeslot;

exports.confirmConsultation = confirmConsultation;

exports.refundTimeslot = refundStripe;

exports.generateToken = generateToken;

exports.stripeWebhook = stripeWebhook;

exports.notificationStartAppointment = notificationStartAppointment;

exports.deleteDoctor = deleteDoctorAccount;

exports.deleteUser = deleteUserPermanently;

exports.doctorAdded = doctorAdded;

exports.rescheduleTimeslot = rescheduleTimeslot;

exports.withdrawRequiest = withdrawRequest;

exports.changeLastMessage = changeLastMessage;

exports.constChangeMessageStatus = changeMessageStatus;

exports.createChatRoomToDoctor = createChatRoomToDoctor;

exports.purchaseFreeTimeSlot = purchaseFreeTimeSlot;

exports.messageNotification = messageNotification;

exports.notificationVideoCallListen = notificationVideoCallListen;

exports.callNotification = callNotification;

/* Razorpay function, you can remove it if you don't use razorpay */
exports.requestRazorpayPayment = requestRazorpayPayment;
exports.razorpayWebhook = razorpayWebhook;

/// Paymob function, you can remove it if you don't use paymob
exports.paymobCreateOrder = paymobCreateOrder;
exports.paymobPaymentSuccessHTTPMessage = paymobPaymentSuccessHTTPMessage;
exports.paymobPaymentWebhook = paymobPaymentWebhook;

// Midtrans Function
exports.requestMidtransPayment = requestMidtransPayment;
exports.midtransWebhook = midtransWebhook;

// Stripe Topup Function
exports.createOrderTopUpStripe = createOrderTopUpStripe;

//Payment with Wallet
exports.purchaseTimeSlotWithWallet = purchaseTimeSlotWithWallet;

// User Wallet Functions
exports.requestCreateWallet = requestCreateWallet;
