
export { };
const fileUpload = require('../core/middlewares/fileUpload')
const { uploadFile } = require('../controllers/common/file-upload.controller')

const { addUpdateAvaliblity, doctorsAppointmentListing ,getAvaliblity, doctorHospitalListing, editDoctorProfile, editHospitalProfile, appointmentListing, doctorActionOnAppointment, notificationListing, doctorHospitalAppointment, editDoctorHospitalAppointment, deleteNotification,readNotification,doctorRescheduleAppointment,approvedAppointmentCount, myPatientListing, blockUnblockUser, patientDetailById, appointmentHistoryForPatient, appointmentHistoryForPatientBookings,todayAppointmentListingAll ,bookAppointmentForPatient ,getAllPatientList, createPatientUser,doctorDetailsById , toggleDoctorStatus , listOfHospitalEmployees, getUniquePatientsByDoctor, appointmentListingCounts } = require('../controllers/web/doctor.controller')
const { validToken} = require("../core/middlewares/auth");
const {createHopitalDoctorEmployee } = require("../controllers/web/front.controller");
const { createDailyRoomForBooking } = require('../controllers/admin/appointment.controller');



// Routes =============================================================
module.exports = router => {

    // doctor routes
    router.post("/api/doctor/upload/uploadFile", fileUpload, uploadFile)
    router.post("/api/doctor/edit-doctor-profile" ,validToken, editDoctorProfile);
    router.post("/api/doctor/add-edit-avalibility", validToken,addUpdateAvaliblity)
    router.post("/api/doctor/get-avalibility", getAvaliblity)
    router.post("/api/doctor-hospital-listing", doctorHospitalListing)

    // hospital routes
    router.post("/api/hospital/upload/uploadFile", fileUpload, uploadFile)
    router.post("/api/hospital/edit-hospital-profile",validToken, editHospitalProfile)

    // appointment listing

    router.post("/api/doctor-hospital/appointment-listing",validToken, appointmentListing)
    router.post("/api/doctor-hospital/doctors-appointment-listing",validToken, doctorsAppointmentListing)
    router.post("/api/doctor-hospital/today-appointment-listing-all",validToken, todayAppointmentListingAll)
    router.post("/api/doctor-hospital/appointment-action",validToken, doctorActionOnAppointment)
    router.post("/api/doctor-hospital/appointment",validToken, doctorHospitalAppointment)
    router.post("/api/doctor-hospital/update-appointment",validToken, editDoctorHospitalAppointment)
    router.post("/api/doctor-hospital/today-appointment-count", validToken,approvedAppointmentCount)
    router.post("/api/doctor-hospital/appointment-listing-counts", validToken, appointmentListingCounts)
    router.post("/api/doctor-hospital/all-patient-list" , getAllPatientList); 
    router.post("/api/doctor-hospital/book-appointment" , bookAppointmentForPatient);


    // reschedule

    router.post("/api/doctor-hospital/reschedule-appointment",validToken, doctorRescheduleAppointment)

    // notification
    router.post("/api/doctor-hospital/notification-listing",validToken, notificationListing)
    router.post("/api/doctor-hospital/delete-notification",validToken, deleteNotification)
    router.post("/api/doctor-hospital/read-notification",validToken, readNotification)

    router.post("/api/doctor-hospital/my-patient-listing",validToken, myPatientListing);
    router.post("/api/doctor-hospital/block-unblock-user",validToken, blockUnblockUser);
    router.post("/api/doctor-hospital/patient-details-by-id",validToken, patientDetailById);
    router.post("/api/doctor-hospital/appointment-history-for-patient",validToken, appointmentHistoryForPatient);
    router.post("/api/doctor-hospital/appointment-history-patient-bookings",validToken, appointmentHistoryForPatientBookings);

    router.get("/api/doctor-hospital/unique-patients", validToken, getUniquePatientsByDoctor);

    router.post("/api/doctor-hospital/create-patient-acc" ,validToken, createPatientUser);

    router.get("/api/doctor-hospital/details/:id",doctorDetailsById);
    router.post("/api/doctor-hospital/create-doctor" ,validToken ,  createHopitalDoctorEmployee);
    router.post("/api/doctor-hospital/toggle-status" , validToken , toggleDoctorStatus);
    router.get("/api/hospital/doctor-list" , validToken , listOfHospitalEmployees);

    // Daily.co room creation alias for doctors/hospitals
    router.post("/api/doctor-hospital/appointments/:id/create-room", validToken, createDailyRoomForBooking);
}
