const express = require("express")
const router = express.Router()
const userController = require("../controllers/user")
const orderController = require("../controllers/order")
const auth = require("../auth");

const { authenticateToken, verifyAdmin, verifyUser } = auth;

// User registration route
router.post("/register", userController.registerUser)

// User authentication route
router.post("/authenticate", userController.authenticateUser)

// Update user data route
router.put("/update", authenticateToken, userController.updateUserData)

// POST /users/order
router.post("/order", orderController.createOrder);

// Retrieve user details
router.get('/retrieveUser', authenticateToken, verifyUser, userController.getUserDetails);

// EXCLUSIVE ADMIN ACCOUNT
// Set user to Admin User
router.post('/set-admin', authenticateToken, verifyAdmin, userController.setAdmin);

// Route to retrieve authenticated user's orders
router.post("/getOrders", authenticateToken, verifyUser, orderController.getOrders);

// Route to retrieve all orders
router.get("/orders-all", authenticateToken, verifyAdmin, orderController.getAllOrders);

module.exports = router
