import { Router } from "express";
import {
    getProducts,
    createProduct,
    updateProduct,
    deleteProduct,
    setProductAvailability
} from "./product.controller";

const router = Router();

import { protect } from "../../middlewares/auth.middleware";
import { attachShop } from "../../middlewares/shop.middleware";
import { requireAdminOrPosRoles } from "../../middlewares/authz.middleware";

router.use(protect);
router.use(attachShop);

router.get("/", getProducts);
router.post("/", requireAdminOrPosRoles("MANAGER"), createProduct);
router.patch("/:id/availability", setProductAvailability);
router.patch("/:id", requireAdminOrPosRoles("MANAGER"), updateProduct);
router.delete("/:id", requireAdminOrPosRoles("MANAGER"), deleteProduct);

export default router;