#pragma once
//robotics
#include <robotics/mvc.hpp>
#include <robotics/logger.hpp>

using namespace robotics;
using WebResponse			= robotics::v3::mvc::web_result_response;
using HttpContext			= robotics::v3::mvc::http_context::curr;
using JumpResponse			= robotics::v3::mvc::jump_response;
using TextResponse			= robotics::v3::mvc::text_response;
using JsonResponse			= robotics::v3::mvc::json_response;
using StreamResponse		= robotics::v3::mvc::stream_response;
using DownloadResponse		= robotics::v3::mvc::download_response;
using HtmlResponse			= robotics::v3::mvc::html_response;
using View					= robotics::v3::mvc::view;

/* ************************************************
* 作者:Lenovo
* 时间:2024/5/24 11:04:02
* 机器名:DESKTOP-4I13MDL
* 控制器名:home
* *************************************************/
class home {
public:
	home() {
	}
	/**
	 * @brief 处理对首页的请求，并根据用户会话信息返回相应的页面响应。
	 * @return 如果用户已登录，则返回包含用户信息的首页视图；否则清除 Cookie 并重定向到登录页面。
	 */
	[[Route("home/index")]]
	[[FileMapping("home/index.html")]]
	WebResponse index() {
		//获取用户信息
		web_user_config_info user;
		if (!HttpContext::get_session<web_user_config_info>("user", user)) {
			HttpContext::remove_cookie();
			return JumpResponse("account/index");
		}
		return View(user);
	}
	/**
	 * @brief 初始化主页并返回视图响应。
	 * @param v 初始化时传递的字符串参数。
	 * @return WebResponse 类型的视图响应。
	 */
	[[Route("home/init")]]
	[[FileMapping("content/api/init.json")]]
	WebResponse init(std::string v) {
		return View();
	}
};