"use client";

import { usePathname } from "next/navigation";

const pageTitles: Record<string, string> = {
    "/": "Dashboard",

    "/tenants": "Tenant Management » Tenant / CPO",
    "/tenants/add": "Tenant Management » Tenant / CPO » Create",

    "/infrastructure": "Infrastructure",
    "/infrastructure/server": "Infrastructure » Server Status",
    "/monitoring": "Monitoring",
    "/monitoring/charger": "Monitoring » Charger",
    "/monitoring/ocpp": "Monitoring » OCPP",
    "/ticket": "Support Tickets",
    "/logs": "Audit Trails",
    "/admin": "Administration » List Admin",
};

function getPageTitle(pathname: string): string {
    if (pageTitles[pathname]) {
        return pageTitles[pathname];
    }

    if (/^\/admin\/session/.test(pathname)) {
        return "Administration » List Admin Session";
    }

    if (/^\/ticket\/[^/]+$/.test(pathname)) {
        return "Support Tickets » Detail";
    }

    if (/^\/monitoring\/charger\/[^/]+$/.test(pathname)) {
        return "Monitoring » Charger » Detail";
    }

    if (/^\/monitoring\/charger\/[^/]+\/dlm$/.test(pathname)) {
        return "Monitoring » Charger » Dynamic Load Management";
    }

    if (/^\/tenants\/[^/]+$/.test(pathname)) {
        return "Tenant Management » Tenant / CPO » View";
    }

    // Tenant server
    if (/^\/tenants\/[^/]+\/server$/.test(pathname)) {
        return "Tenant Management » Tenant / CPO » Server";
    }

    // Tenant database
    if (/^\/tenants\/[^/]+\/database$/.test(pathname)) {
        return "Tenant Management » Tenant / CPO » Database";
    }

    return "";
}

export default function PageHeader() {
    const pathname = usePathname();
    const title = getPageTitle(pathname);

    return (
        <div className="page-header d-print-none">
            <div className="container-xl">
                <div className="row g-2 align-items-center">
                    <div className="col">
                        <h1 className="page-title">
                            {title}
                        </h1>
                    </div>
                </div>
            </div>
        </div>
    );
}