'use strict';
/**
 * Gamification — facade module.
 * Implementation split into ./gamification/* domain files.
 * Public surface (re-exports) is identical to the pre-split single file
 * for backwards compatibility with existing route mounts and inter-controller
 * imports (biochem, classes, games, lessons, pet, redBook, session, etc.).
 */

const service = require('./gamification/service');
const api     = require('./gamification/api');
const admin   = require('./gamification/admin');

module.exports = {
  // API handlers (mounted by routes/gamification.js)
  ...api,
  // Admin handlers
  ...admin,
  // Service functions for other controllers
  awardXP:                 service.awardXP,
  awardCoins:              service.awardCoins,
  seedAchievements:        service.seedAchievements,
  checkAchievements:       service.checkAchievements,
  checkRedBookAchievements: service.checkRedBookAchievements,
  onTestFinished:          service.onTestFinished,
  onClassJoined:           service.onClassJoined,
  onLabExperiment:         service.onLabExperiment,
  onLessonComplete:        service.onLessonComplete,
  updateDailyGoal:         service.updateDailyGoal,
  updateChallenges:        service.updateChallenges,
};
