import { Router } from "express";
import {
  getMe,
  updateMe,
  uploadAvatar,
  changePassword,
  getDashboard,
  getLeaderboard,
  submitCertificateRequest,
  getMyCertificateRequests,
  getMyCertificates,
  saveDeviceToken,
  removeDeviceToken,
  getActiveUserNames,
} from "../controllers/userController";
import protectUser from "../middlewares/protectUser";
import uploadImage from "../middlewares/uploadImage";
import uploadCertificate from "../middlewares/uploadCertificate";
import { getRecentActivityController } from "../controllers/activityController";
import { getAvailableGames } from "../controllers/availGamesController";

const router = Router();

router.get("/dashboard", protectUser, getDashboard);
router.get("/leaderboard", protectUser, getLeaderboard);
router.get("/me", protectUser, getMe);
router.put("/me", protectUser, updateMe);
router.put("/avatar", protectUser, uploadImage.single("avatar"), uploadAvatar);
router.put("/change-password", protectUser, changePassword);
router.post(
  "/certificates/requests",
  protectUser,
  uploadCertificate.single("certificate"),
  submitCertificateRequest,
);
router.get("/certificates/requests", protectUser, getMyCertificateRequests);
router.get("/certificates", protectUser, getMyCertificates);
// router.delete('/me', protectUser, deleteMe);
router.post("/device-token", protectUser, saveDeviceToken);
router.delete("/device-token", protectUser, removeDeviceToken);
router.get("/active-users/names", protectUser, getActiveUserNames);
// Recent activity route
router.get("/recent-activity", protectUser, getRecentActivityController);
// Available games route
router.get("/games/available", protectUser, getAvailableGames);

export default router;
