import { Router } from "express";
import { protect } from "@/middlewares/auth.middleware";
import { attachShop } from "@/middlewares/shop.middleware";
import { requireAdminOrPosRoles } from "@/middlewares/authz.middleware";
import { uploadSound } from "./station-sound.middleware";
import {
    listStationSounds,
    upsertStationSound,
    deleteStationSound,
} from "./station-sound.controller";

const router = Router({ mergeParams: true });

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

// Lecture publique pour les stations connectées (via token POS)
router.get("/", listStationSounds);

// Gestion admin uniquement
router.post(
    "/",
    requireAdminOrPosRoles("MANAGER"),
    uploadSound.single("audio"),
    upsertStationSound,
);

router.delete(
    "/:soundId",
    requireAdminOrPosRoles("MANAGER"),
    deleteStationSound,
);

export default router;

