'use strict';

/**
 * GET /api/hero-prop (Truth-Everywhere Part 2, item 5) — the daily hero prop:
 * the live read where VYNDR disagrees most with the market (largest
 * |model - consensus| gap, A/B only). Public, cache-only (reads the pre-graded
 * snapshot) → never triggers grading, never spends API credits. Empty slate →
 * most recent real graded read; nothing cached → { available:false } (hides).
 */

const express = require('express');
const { createRateLimit } = require('../middleware/rateLimit');
const heroPropService = require('../services/heroPropService');

const router = express.Router();
router.use(createRateLimit({ windowMs: 60_000, max: 60 }));

router.get('/', async (req, res) => {
  try {
    const hero = await heroPropService.pickHeroProp({});
    res.set('Cache-Control', 'public, max-age=300');
    return res.json(hero);
  } catch (err) {
    console.error('[hero-prop]', err.message);
    return res.status(200).json({ available: false });
  }
});

module.exports = router;
