import { Router } from "express";
import {
  confirmOperation,
  requestOperation,
  getCompletedOperations,
  getActiveOperations,
  getOperationDetails,
  getOperationPaymentsWithTotal,
  getAccountChargeLink,
  payDebt,
  payDebtConfirmation,
  checkLatePayments,
  getAllOperations,
  getOperationDetailsById,
  getOperationPayments,
  requestSypagoOtp,
} from "../controllers/operationController";
import { authorizeModules, verifyToken } from "../middlewares/authJwt";

const router = Router();

router.post("/check-late-payments", checkLatePayments);

router.use(verifyToken);

router.get("/completed", getCompletedOperations);
router.get("/active", getActiveOperations);
router.post("/request", requestOperation);
router.post("/confirm", confirmOperation);
router.get("/details/:operationId", getOperationDetails);
router.get("/payments", getOperationPaymentsWithTotal);

router.post("/pay-debt", payDebt);
router.post("/pay-debt-confirmation", payDebtConfirmation);
router.post("/request-otp", requestSypagoOtp);
router.get("/account-charge-link", getAccountChargeLink);

router.use(authorizeModules("operations"));
router.get("/all", getAllOperations);
router.get("/get/:operationId", getOperationDetailsById);
router.get("/all-payments", getOperationPayments);

export default router;
