import { Router } from "express";
import validateData from "../middlewares/validation.middleware";
import authorize from "../middlewares/authorization.middleware";
import {
  AddExtraChargeSchema,
  EditExtraChargeSchema,
  TogglePropertySchema,
} from "../schemas/extraCharge.schema";
import extraCharges from "../controllers/extraCharges.controller";
import { multerSingleFn } from "../middlewares/multer.middleware";

const router = Router();

router.post(
  "/add",
  authorize,
  validateData(AddExtraChargeSchema),
  extraCharges.AddExtraCharge
);
router.post(
  "/edit",
  authorize,
  validateData(EditExtraChargeSchema),
  extraCharges.EditExtraCharge
);

router.get("/list", authorize, extraCharges.ListForClient);
router.get("/web/list", authorize, extraCharges.ListForWeb);
router.get(
  "/linked-properties/:extraChargeId",
  authorize,
  extraCharges.LinkedProperties
);

router.post(
  "/toggle",
  authorize,
  validateData(TogglePropertySchema),
  extraCharges.ToggleProperty
);

router.post(
  "/toggle/new",
  authorize,
  // validateData(TogglePropertySchema),
  extraCharges.TogglePropertyX
);

router.post(
  "/add/bill",
  authorize,
  multerSingleFn,
  extraCharges.AddUtilityBill
);

router.get(
  "/list/bill",
  authorize,
  extraCharges.ListBillForClient
);

router.post("/delete", authorize, extraCharges.Delete);

export default router;
