const { clubHasFeature } = require('../utils/featureAccess');

// featureCode: 예) 'event_management', 'team_create', 'statistics' 등
function requireFeature(featureCode) {
  return async function(req, res, next) {
    try {
      const clubId = req.session.clubId || req.clubId || req.body.clubId || req.params.clubId || req.query.clubId;
      // console.log('backendClubId:', clubId);
      if (!clubId) {
        return res.status(400).json({ error: '클럽 정보가 필요합니다.' });
      }

      const hasFeature = await clubHasFeature(clubId, featureCode);
      if (!hasFeature) {
        return res.status(403).json({ error: '해당 기능을 사용할 수 없습니다.' });
      }
      next();
    } catch (err) {
      next(err);
    }
  };
}

module.exports = requireFeature;
