import { Router } from "express";
import {
    getOrdersForShop,
    createOrder,
    getOrder,
    deleteOrder,
    getOrdersPending,
    replaceItems,
    replaceDepositLines,
    updateOrder
} from "./order.controller";

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

const router = Router();

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

router.get("/", getOrdersForShop);
router.get("/pending", getOrdersPending);
router.get("/:id", getOrder);

router.post("/", requirePosRoles("MANAGER", "CASHIER", "STAFF"), createOrder);
router.patch("/:id", requirePosRoles("MANAGER", "CASHIER"), updateOrder);
router.patch("/:id/items", requirePosRoles("MANAGER", "CASHIER", "STAFF"), replaceItems);
router.patch("/:id/deposits", requirePosRoles("MANAGER", "CASHIER", "STAFF"), replaceDepositLines);
router.delete("/:id", requirePosRoles("MANAGER", "CASHIER"), deleteOrder);

export default router;