import SummaryCard from '@/Components/SummaryCard';
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { SectionHeader } from '@/Pages/Dashboard/DashboardSectionHeader';
import { Head, usePage } from '@inertiajs/react';
import {
    Bell,
    Building2,
    CalendarClock,
    Clock,
    FileText,
    FlaskConical,
    Phone,
    Pill,
    PillBottle,
    ShoppingCart,
    Star,
    Users,
    Watch,
} from 'lucide-react';

interface AdminDashboardProps {
    usersCount: number;
    devicesCount: number;
    alertsCount: number;
    reminderCount: number;
    contactsCount: number;
    examsCount: number;
    drugsCount: number;
    drugPrescriptionsCount: number;
    drugsToRestockCount: number;
    companiesCount: number;
    documentsCount: number;
}

export default function AdminDashboard({
    usersCount,
    devicesCount,
    alertsCount,
    reminderCount,
    contactsCount,
    examsCount,
    drugsCount,
    drugPrescriptionsCount,
    drugsToRestockCount,
    companiesCount,
    documentsCount,
}: AdminDashboardProps) {
    const user = usePage().props.auth.user;

    return (
        <AuthenticatedLayout
            header={
                <h2 className="text-xl font-semibold leading-tight text-gray-800">
                    Dashboard
                </h2>
            }
        >
            <Head title="Dashboard" />

            <div className="py-2">
                <div className="mx-auto max-w-7xl sm:px-6 lg:px-8">
                    <div className="overflow-hidden sm:rounded-lg">
                        <div className="p-6 text-gray-900">
                            <div className="scroll-m-20 text-4xl font-light tracking-tight lg:text-5xl">
                                Ciao,
                            </div>
                            <div className="scroll-m-20 pb-8 text-4xl font-semibold tracking-tight lg:text-5xl">
                                {`${user.name} ${user.surname}`}
                            </div>

                            <section className="mb-10">
                                <SectionHeader
                                    icon={Star}
                                    title="Area Operativa"
                                />
                                <div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3">
                                    <SummaryCard
                                        title="Utenti"
                                        amount={usersCount}
                                        icon={Users}
                                        href={route('admin-users')}
                                    />
                                    <SummaryCard
                                        title="Promemoria"
                                        amount={reminderCount}
                                        icon={CalendarClock}
                                        href={route('reminders.index')}
                                    />
                                    <SummaryCard
                                        title="Avvisi"
                                        amount={alertsCount}
                                        icon={Bell}
                                        href={route('admin-alerts')}
                                    />
                                    <SummaryCard
                                        title="Promemoria Farmaci"
                                        amount={drugPrescriptionsCount}
                                        icon={Pill}
                                        href={route('admin-drug-prescriptions')}
                                    />
                                    <SummaryCard
                                        title="Farmaci da riordinare"
                                        amount={drugsToRestockCount}
                                        icon={ShoppingCart}
                                        href={route('drug-restocks-dashboard')}
                                    />
                                    <SummaryCard
                                        title="Esami"
                                        amount={examsCount}
                                        icon={FlaskConical}
                                        href={route('admin-exams')}
                                    />
                                </div>
                            </section>

                            <section>
                                <SectionHeader
                                    icon={Clock}
                                    title="Area Gestionale"
                                />
                                <div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4">
                                    <SummaryCard
                                        title="Farmaci"
                                        amount={drugsCount}
                                        icon={PillBottle}
                                        href={route('admin-drugs')}
                                    />
                                    <SummaryCard
                                        title="Contatti"
                                        amount={contactsCount}
                                        icon={Phone}
                                        href={route('admin-contacts')}
                                    />
                                    <SummaryCard
                                        title="Dispositivi"
                                        amount={devicesCount}
                                        icon={Watch}
                                        href={route('admin-devices')}
                                    />
                                    <SummaryCard
                                        title="Aziende"
                                        amount={companiesCount}
                                        icon={Building2}
                                        href={route('admin-companies')}
                                    />
                                    <SummaryCard
                                        title="Documenti"
                                        amount={documentsCount}
                                        icon={FileText}
                                        href={route('admin-documents')}
                                    />
                                </div>
                            </section>
                        </div>
                    </div>
                </div>
            </div>
        </AuthenticatedLayout>
    );
}
