import { Router } from 'express';
import {
  changeUserPassword,
  createUser,
  getCommunicationLogs,
  getCommunicationSettings,
  getPasswordRecoveryRequests,
  getPublicClinicSettings,
  getSettings,
  resetUserPassword,
  updateCommunicationSettings,
  updateClinicSettings,
} from '../controllers/settings.controller';
import {
  getDoctorOverrides,
  getDoctorSchedule,
  postDoctorOverride,
  putDoctorOverride,
  putDoctorSchedule,
  removeDoctorOverride,
} from '../controllers/doctor-schedule.controller';

const router = Router();

router.get('/public', getPublicClinicSettings);
router.get('/', getSettings);
router.get('/password-recovery-requests', getPasswordRecoveryRequests);
router.get('/communications', getCommunicationSettings);
router.get('/communications/logs', getCommunicationLogs);
router.put('/clinic', updateClinicSettings);
router.put('/communications', updateCommunicationSettings);
router.post('/users', createUser);
router.post('/users/:userId/password/change', changeUserPassword);
router.post('/users/:userId/password/reset', resetUserPassword);
router.get('/doctors/:doctorUserId/schedule', getDoctorSchedule);
router.put('/doctors/:doctorUserId/schedule', putDoctorSchedule);
router.get('/doctors/:doctorUserId/schedule-overrides', getDoctorOverrides);
router.post('/doctors/:doctorUserId/schedule-overrides', postDoctorOverride);
router.put('/doctors/:doctorUserId/schedule-overrides/:dateKey', putDoctorOverride);
router.delete('/doctors/:doctorUserId/schedule-overrides/:dateKey', removeDoctorOverride);

export default router;
