import { type Response, Router } from "express";
import { db } from "../db/db.controller.js";
import { settings } from "../db/schema/settings.schema.js";

import { apiReturn } from "../utils/returnHelper.utils.js";
import { tryCatch } from "../utils/trycatch.utils.js";

// export const updateSetting = async (setting: Setting) => {
// 	// TODO: when the setting is a feature setting we will need to have it run each kill switch on the crons well just stop them and during a reset it just wont start them
// 	// TODO: when the setting is a system we will need to force an app restart
// 	// TODO: when the setting is standard we don't do anything.
// };

const r = Router();

r.get("/", async (_, res: Response) => {
	const { data: sName, error: sError } = await tryCatch(
		db.select().from(settings).orderBy(settings.name),
	);

	if (sError) {
		return apiReturn(res, {
			success: false,
			level: "error",
			module: "system",
			subModule: "settings",
			message: `There was an error getting the settings `,
			data: [sError],
			status: 400,
		});
	}

	return apiReturn(res, {
		success: true,
		level: "info",
		module: "system",
		subModule: "settings",
		message: `All current settings`,
		data: sName ?? [],
		status: 200,
	});
});

export default r;
