import { Router } from "express";
import {
    listRecipes,
    getRecipe,
    createRecipe,
    updateRecipe,
    deleteRecipe,
    setRecipeIngredients,
} from "./recipe.controller";

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

const router = Router();

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

// ── Recipe CRUD ──
router.get("/", listRecipes);
router.get("/:id", getRecipe);
router.post("/", requireAdminOrPosRoles("MANAGER"), createRecipe);
router.patch("/:id", requireAdminOrPosRoles("MANAGER"), updateRecipe);
router.delete("/:id", requireAdminOrPosRoles("MANAGER"), deleteRecipe);
router.put("/:id/ingredients", requireAdminOrPosRoles("MANAGER"), setRecipeIngredients);

export default router;
