import type { Request, Response, NextFunction } from 'express';
import * as settingsModel from '../models/settings.model.js';
import { successResponse } from '../utils/response.js';

async function getSettings(_req: Request, res: Response, next: NextFunction) {
  try {
    const settings = await settingsModel.getSettings();
    return successResponse(res, 'Settings fetched successfully', settings);
  } catch (error) {
    next(error);
    return;
  }
}

async function updateSettings(req: Request, res: Response, next: NextFunction) {
  try {
    const settings = await settingsModel.updateSettings(req.body, req.user ? Number(req.user.sub) : undefined);
    return successResponse(res, 'Settings updated successfully', settings);
  } catch (error) {
    next(error);
    return;
  }
}

export { getSettings, updateSettings };
