import { Router } from 'express';
import * as leadStageController from '@/modules/master/leadStage/leadStage.controller';
import userAuthAndCheckPermissions from '@/modules/auth/auth.user.middleware';
import { AuditMode } from '@/shared/constants/enum.constant';
import { setAuditFields } from '@/shared/middleware/setAuditFields';
// import { validateMiddleware } from '@/shared/middleware/validate.middleware';
// import { leadStageValidation } from './leadStage.validation';
// import { LeadStageResponseCodes } from '@/shared/utils/responseCode/responseCode';

const router: Router = Router();

router
  .route('/')
  .get(
    userAuthAndCheckPermissions(),
    leadStageController.getLeadStages,
  )
  .post(
    userAuthAndCheckPermissions(),
    setAuditFields({ mode: AuditMode.CREATE }),
    // validateMiddleware(leadStageValidation.createLeadStage),
    leadStageController.createLeadStage,
  );

router
  .route('/position')
  .patch (
    userAuthAndCheckPermissions(),
    setAuditFields({ mode: AuditMode.UPDATE }),
    // validateMiddleware(leadStageValidation.updateLeadStagesPosition),
    leadStageController.updateLeadStagesPosition,
  );

router
  .route('/:id')
  .patch(
    userAuthAndCheckPermissions(),
    setAuditFields({ mode: AuditMode.UPDATE }),
    // validateMiddleware(leadStageValidation.updateLeadStagePosition),
    leadStageController.updateLeadStage,
  )
  .delete(
    userAuthAndCheckPermissions(),
    // validateMiddleware(leadStageValidation.deleteLeadStageById),
    leadStageController.deleteLeadStageById,
  );

export default router;