import express, { Router } from 'express';

import * as fast2smsValidation from '@/modules/communication/fast2sms/fast2sms.validation';
import * as fast2smsController from '@/modules/communication/fast2sms/fast2sms.controller';

import { validateMiddleware } from '@/shared/utils/middlewares/index';
import userAuthAndCheckPermissions from '@/modules/auth/auth.user.middleware';

const router: Router = express.Router();

router
  .route('/')
  .get(
    userAuthAndCheckPermissions(),
    validateMiddleware(fast2smsValidation.getFast2sms),
    fast2smsController.getFast2smss,
  )
  .patch(
    userAuthAndCheckPermissions(),
    validateMiddleware(fast2smsValidation.addFast2smsCreds),
    fast2smsController.addFast2smsCreds,
  )
  .post(
    userAuthAndCheckPermissions(),
    validateMiddleware(fast2smsValidation.bulkUploadTemplate),
    fast2smsController.bulkUploadTemplate,
  );

router
  .route('/:templateId')
  .patch(
    userAuthAndCheckPermissions(),
    validateMiddleware(fast2smsValidation.updateTemplate),
    fast2smsController.updateTemplate,
  );

export default router;
