const express = require("express"); const { participate, myGains, getPublicGameWindow } = require("../controllers/game.controller"); const authMiddleware = require("../middlewares/auth.middleware"); const roleMiddleware = require("../middlewares/role.middleware"); const validate = require("../middlewares/validate.middleware"); const { participateSchema } = require("../validations/game.validation"); const router = express.Router(); /** * @swagger * /api/game/participate: * post: * summary: Participer au jeu concours * tags: * - Game * security: * - bearerAuth: [] * responses: * 201: * description: Participation enregistrée */ // Le jeu est reserve aux clients : un ADMIN ou un EMPLOYEE qui joue // consommerait des tickets et fausserait les statistiques. router.post("/participate", authMiddleware, roleMiddleware("CLIENT"), validate(participateSchema), participate); /** * @swagger * /api/game/my-gains: * get: * summary: Historique des gains du participant * tags: * - Game * security: * - bearerAuth: [] * responses: * 200: * description: Liste des gains */ router.get("/my-gains", authMiddleware, roleMiddleware("CLIENT"), myGains); /** * @swagger * /api/game/window: * get: * summary: Dates publiques du jeu-concours (début, fin des participations, fin des retraits) * tags: * - Game * responses: * 200: * description: Phase et échéances courantes ; dates nulles si le jeu n'est pas configuré */ router.get("/window", getPublicGameWindow); module.exports = router;