import { Router } from 'express';
import { verifyToken } from '../middleware/auth';
import { createLogger } from '../utils/logger';
import { SearchModel } from '../models/Search';

const router = Router();
const logger = createLogger('SearchesRoutes');

/**
 * GET /searches
 * Get the current user's search history (authenticated)
 */
router.get('/', verifyToken, async (req, res) => {
  try {
    const user = (req as any).user;
    const limit = Math.min(parseInt(req.query.limit as string) || 50, 200);

    const searches = await SearchModel.find({ userId: user.userId })
      .sort({ createdAt: -1 })
      .limit(limit)
      .lean();

    res.json({ searches });
  } catch (error) {
    logger.error('Failed to fetch searches', {
      error: error instanceof Error ? error.message : String(error),
    });
    res.status(500).json({ error: 'Failed to fetch searches' });
  }
});

export default router;
