//this file is generated by program(drogon_ctl) automatically,don't modify it!
#include "agents.h"
#include <drogon/utils/OStringStream.h>
#include <drogon/utils/Utilities.h>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <iostream>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <list>
#include <deque>
#include <queue>

#include <vector>
#include <map>
#include <string>

using namespace drogon;
std::string agents::genText(const DrTemplateData& agents_view_data)
{
	drogon::OStringStream agents_tmp_stream;
	std::string layoutName{""};
    auto agents = agents_view_data.get<std::vector<std::map<std::string, std::string>>>("agents");
    auto role = agents_view_data.get<std::string>("role");
	agents_tmp_stream << "<!DOCTYPE html>\n";
	agents_tmp_stream << "<html lang=\"en\">\n";
	agents_tmp_stream << "<head>\n";
	agents_tmp_stream << "  <meta charset=\"UTF-8\">\n";
	agents_tmp_stream << "  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
	agents_tmp_stream << "  <title>TRAKERVEH - Agents</title>\n";
	agents_tmp_stream << "  <link rel=\"stylesheet\" href=\"/css/style.css\">\n";
	agents_tmp_stream << "  <link rel=\"stylesheet\" href=\"/agent/css/agent.css\">\n";
	agents_tmp_stream << "</head>\n";
	agents_tmp_stream << "<body>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "  <div class=\"header\">\n";
	agents_tmp_stream << "    <div class=\"logo\">TRAKERVEH</div>\n";
	agents_tmp_stream << "  </div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "  <div class=\"center-container\">\n";
	agents_tmp_stream << "    <div class=\"agents-layout\">\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "      <div class=\"agents-list\">\n";
	agents_tmp_stream << "        ";
 int i = 1; for(auto const& a : agents) { 
	agents_tmp_stream << "        <div class=\"agent-item\"\n";
	agents_tmp_stream << "             data-agent-id=\"";
 agents_tmp_stream << a.at("agent_id"); 
	agents_tmp_stream << "\"\n";
	agents_tmp_stream << "             data-sector-id=\"";
 agents_tmp_stream << a.at("sector_id"); 
	agents_tmp_stream << "\"\n";
	agents_tmp_stream << "             data-created=\"";
 agents_tmp_stream << a.at("created_at"); 
	agents_tmp_stream << "\"\n";
	agents_tmp_stream << "             data-first-name=\"";
 agents_tmp_stream << a.at("first_name"); 
	agents_tmp_stream << "\"\n";
	agents_tmp_stream << "             data-last-name=\"";
 agents_tmp_stream << a.at("last_name"); 
	agents_tmp_stream << "\"\n";
	agents_tmp_stream << "             data-comments=\"";
 agents_tmp_stream << a.at("comments"); 
	agents_tmp_stream << "\"\n";
	agents_tmp_stream << "             data-last-login=\"";
 agents_tmp_stream << a.at("last_login"); 
	agents_tmp_stream << "\">\n";
	agents_tmp_stream << "          ";
 agents_tmp_stream << i++ << ". " << a.at("first_name") << " " << a.at("last_name"); 
	agents_tmp_stream << "        </div>\n";
	agents_tmp_stream << "        ";
 } 
	agents_tmp_stream << "        ";
 if(role == "admin") { 
	agents_tmp_stream << "        <div class=\"add-item-btn\" onclick=\"document.getElementById('add-agent-form').style.display='flex'\">+ Add Agent</div>\n";
	agents_tmp_stream << "        ";
 } 
	agents_tmp_stream << "      </div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "      <div class=\"agents-divider\"></div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "      <div class=\"agents-details-pane\">\n";
	agents_tmp_stream << "        ";
 if(role == "admin") { 
	agents_tmp_stream << "        <form action=\"/agents/update\" method=\"POST\" style=\"display:flex;flex-direction:column;gap:15px;\">\n";
	agents_tmp_stream << "          <input type=\"hidden\" id=\"update-agent-id\" name=\"agentId\" value=\"\">\n";
	agents_tmp_stream << "          <div class=\"line-group\">\n";
	agents_tmp_stream << "            <span>Agent ID: <span id=\"detail-agent-id\">—</span></span>\n";
	agents_tmp_stream << "            <span>Sector ID: <input type=\"text\" class=\"editable-field\" id=\"detail-sector-id\" name=\"sectorId\" value=\"—\"></span>\n";
	agents_tmp_stream << "            <span>Created at: <span id=\"detail-created\">—</span></span>\n";
	agents_tmp_stream << "          </div>\n";
	agents_tmp_stream << "          <div class=\"spacer\"></div>\n";
	agents_tmp_stream << "          <div class=\"line-group\">\n";
	agents_tmp_stream << "            <span>First Name: <input type=\"text\" class=\"editable-field\" id=\"detail-first-name\" name=\"firstName\" value=\"—\"></span>\n";
	agents_tmp_stream << "            <span>Last Name: <input type=\"text\" class=\"editable-field\" id=\"detail-last-name\" name=\"lastName\" value=\"—\"></span>\n";
	agents_tmp_stream << "            <span>Comments: <span id=\"detail-comments\">—</span></span>\n";
	agents_tmp_stream << "          </div>\n";
	agents_tmp_stream << "          <div class=\"spacer\"></div>\n";
	agents_tmp_stream << "          <span>Last Login: <span id=\"detail-last-login\">—</span></span>\n";
	agents_tmp_stream << "          <button type=\"submit\" class=\"submit-btn\">Submit</button>\n";
	agents_tmp_stream << "        </form>\n";
	agents_tmp_stream << "        ";
 } else { 
	agents_tmp_stream << "        <div class=\"line-group\">\n";
	agents_tmp_stream << "          <span>Agent ID: <span id=\"detail-agent-id\">—</span></span>\n";
	agents_tmp_stream << "          <span>Sector ID: <span id=\"detail-sector-id\">—</span></span>\n";
	agents_tmp_stream << "          <span>Created at: <span id=\"detail-created\">—</span></span>\n";
	agents_tmp_stream << "        </div>\n";
	agents_tmp_stream << "        <div class=\"spacer\"></div>\n";
	agents_tmp_stream << "        <div class=\"line-group\">\n";
	agents_tmp_stream << "          <span>First Name: <span id=\"detail-first-name\">—</span></span>\n";
	agents_tmp_stream << "          <span>Last Name: <span id=\"detail-last-name\">—</span></span>\n";
	agents_tmp_stream << "          <span>Comments: <span id=\"detail-comments\">—</span></span>\n";
	agents_tmp_stream << "        </div>\n";
	agents_tmp_stream << "        <div class=\"spacer\"></div>\n";
	agents_tmp_stream << "        <span>Last Login: <span id=\"detail-last-login\">—</span></span>\n";
	agents_tmp_stream << "        ";
 } 
	agents_tmp_stream << "      </div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "    </div>\n";
	agents_tmp_stream << "  </div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "  <!-- Add Agent Modal (admin only) -->\n";
	agents_tmp_stream << "  ";
 if(role == "admin") { 
	agents_tmp_stream << "  <div id=\"add-agent-form\" style=\"display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);z-index:200;justify-content:center;align-items:center;\">\n";
	agents_tmp_stream << "    <form action=\"/agents/add\" method=\"POST\" style=\"display:flex;flex-direction:column;gap:20px;padding:40px;width:300px;\">\n";
	agents_tmp_stream << "      <div style=\"font-size:1.4rem;text-align:center;margin-bottom:10px;\">Add Agent</div>\n";
	agents_tmp_stream << "      <div class=\"input-group\"><input type=\"text\" name=\"login\" placeholder=\" \" required /><label>Login</label></div>\n";
	agents_tmp_stream << "      <div class=\"input-group\"><input type=\"password\" name=\"password\" placeholder=\" \" required /><label>Password</label></div>\n";
	agents_tmp_stream << "      <div class=\"input-group\"><input type=\"text\" name=\"firstName\" placeholder=\" \" required /><label>First Name</label></div>\n";
	agents_tmp_stream << "      <div class=\"input-group\"><input type=\"text\" name=\"lastName\" placeholder=\" \" required /><label>Last Name</label></div>\n";
	agents_tmp_stream << "      <div class=\"input-group\"><input type=\"number\" name=\"sectorId\" placeholder=\" \" required /><label>Sector ID</label></div>\n";
	agents_tmp_stream << "      <div class=\"input-group\">\n";
	agents_tmp_stream << "        <select name=\"role\" style=\"background:transparent;border:none;border-bottom:2px solid var(--text-white);color:var(--text-white);font-family:var(--font-light);font-size:1.2rem;padding:5px 2px;outline:none;width:100%;\">\n";
	agents_tmp_stream << "          <option value=\"agent\" style=\"background:var(--bg-color);\">Agent</option>\n";
	agents_tmp_stream << "          <option value=\"admin\" style=\"background:var(--bg-color);\">Admin</option>\n";
	agents_tmp_stream << "        </select>\n";
	agents_tmp_stream << "      </div>\n";
	agents_tmp_stream << "      <div style=\"display:flex;gap:20px;justify-content:center;\">\n";
	agents_tmp_stream << "        <button type=\"submit\" class=\"submit-btn\">Create</button>\n";
	agents_tmp_stream << "        <button type=\"button\" class=\"submit-btn\" onclick=\"document.getElementById('add-agent-form').style.display='none'\">Cancel</button>\n";
	agents_tmp_stream << "      </div>\n";
	agents_tmp_stream << "    </form>\n";
	agents_tmp_stream << "  </div>\n";
	agents_tmp_stream << "  ";
 } 
agents_tmp_stream<<"\n";
	agents_tmp_stream << "  <div class=\"menu-container\" id=\"menu-container\">\n";
	agents_tmp_stream << "    <button class=\"menu-icon-btn\" id=\"burger-btn\">\n";
	agents_tmp_stream << "      <svg class=\"menu-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\">\n";
	agents_tmp_stream << "        <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"></line>\n";
	agents_tmp_stream << "        <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line>\n";
	agents_tmp_stream << "        <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"></line>\n";
	agents_tmp_stream << "      </svg>\n";
	agents_tmp_stream << "    </button>\n";
	agents_tmp_stream << "    <div class=\"menu-items\">\n";
	agents_tmp_stream << "      <button class=\"menu-btn\" onclick=\"location.href='/trackers'\">Trackers</button>\n";
	agents_tmp_stream << "      <button class=\"menu-btn\" onclick=\"location.href='/agents'\">Agents</button>\n";
	agents_tmp_stream << "      <button class=\"menu-btn\" onclick=\"location.href='/map'\">Map</button>\n";
	agents_tmp_stream << "      <button class=\"menu-btn\" onclick=\"location.href='/logout'\">Logout</button>\n";
	agents_tmp_stream << "    </div>\n";
	agents_tmp_stream << "  </div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "  <div class=\"footer-info\">\n";
	agents_tmp_stream << "    <div class=\"time-row\">\n";
	agents_tmp_stream << "      <div class=\"time\">04:42</div>\n";
	agents_tmp_stream << "      <div class=\"am-pm\">pm</div>\n";
	agents_tmp_stream << "      <div class=\"page-title\">Agents</div>\n";
	agents_tmp_stream << "    </div>\n";
	agents_tmp_stream << "    <div class=\"user-name\">";
 agents_tmp_stream << agents_view_data.get<std::string>("userName"); 
	agents_tmp_stream << "</div>\n";
	agents_tmp_stream << "  </div>\n";
agents_tmp_stream<<"\n";
	agents_tmp_stream << "  <link rel=\"stylesheet\" href=\"/login/css/login.css\">\n";
	agents_tmp_stream << "  <script src=\"/js/script.js\"></script>\n";
	agents_tmp_stream << "  <script src=\"/agent/js/agent.js\"></script>\n";
	agents_tmp_stream << "  ";
 if(role == "admin") { 
	agents_tmp_stream << "  <script>\n";
	agents_tmp_stream << "    // Sync hidden agentId field when details shown\n";
	agents_tmp_stream << "    const origShow = window.showDetails;\n";
	agents_tmp_stream << "    document.querySelectorAll('.agent-item').forEach(item => {\n";
	agents_tmp_stream << "      item.addEventListener('mouseenter', () => {\n";
	agents_tmp_stream << "        const hid = document.getElementById('update-agent-id');\n";
	agents_tmp_stream << "        if(hid) hid.value = item.dataset.agentId || '';\n";
	agents_tmp_stream << "      });\n";
	agents_tmp_stream << "    });\n";
	agents_tmp_stream << "  </script>\n";
	agents_tmp_stream << "  ";
 } 
	agents_tmp_stream << "</body>\n";
	agents_tmp_stream << "</html>\n";
if(layoutName.empty())
{
std::string ret{std::move(agents_tmp_stream.str())};
return ret;
}else
{
auto templ = DrTemplateBase::newTemplate(layoutName);
if(!templ) return "";
HttpViewData data = agents_view_data;
auto str = std::move(agents_tmp_stream.str());
if(!str.empty() && str[str.length()-1] == '\n') str.resize(str.length()-1);
data[""] = std::move(str);
return templ->genText(data);
}
}
