import { Router } from 'express';
import {
  getWishlist,
  toggleWishlistItem,
  removeFromWishlist,
  getWishlistCount,
  clearWishlist,
} from '../controllers/wishlist.controller';
import { authenticateJWT } from '../middleware/auth.middleware';
import { validateRequest } from '../middleware/validate.middleware';
import { toggleWishlistSchema } from '../validators/wishlist.validator';

const router = Router();

// All wishlist endpoints require customer authentication
router.use(authenticateJWT);

router.get('/', getWishlist);
router.get('/count', getWishlistCount);
router.post('/toggle', validateRequest(toggleWishlistSchema), toggleWishlistItem);
router.delete('/clear', clearWishlist);
router.delete('/:bookId', removeFromWishlist);

export default router;
