const luckyWheelService = require('../services/luckyWheel.service');
const { OK, Created } = require('../core/success.response');

const luckyWheelController = {
    // Public: Get config
    getConfig: async (req, res) => {
        const config = await luckyWheelService.getConfig();
        return new OK({
            message: 'Lấy cấu hình vòng quay thành công',
            metadata: config,
        }).send(res);
    },

    // Admin: Update config
    updateConfig: async (req, res) => {
        const config = await luckyWheelService.updateConfig(req.body);
        return new OK({
            message: 'Cập nhật cấu hình thành công',
            metadata: config,
        }).send(res);
    },

    // User: Spin the wheel
    spin: async (req, res) => {
        const userId = req.user.id;
        const result = await luckyWheelService.spin(userId);
        return new OK({
            message: 'Quay thành công',
            metadata: result,
        }).send(res);
    },

    // User: Get personal history
    getHistory: async (req, res) => {
        const userId = req.user.id;
        const history = await luckyWheelService.getHistory(userId);
        return new OK({
            message: 'Lấy lịch sử quay thành công',
            metadata: history,
        }).send(res);
    },

    // Admin: Get all history
    getAllHistory: async (req, res) => {
        const history = await luckyWheelService.getAllHistory();
        return new OK({
            message: 'Lấy tất cả lịch sử quay thành công',
            metadata: history,
        }).send(res);
    },
};

module.exports = luckyWheelController;
