"use client"; import { useState } from "react"; import Card from "@/components/ui/Card"; import Button from "@/components/ui/Button"; import Input from "@/components/ui/Input"; import Badge from "@/components/ui/Badge"; interface Auto { id: string; marca: string; modelo: string; patente: string; anio: number; } interface Cliente { id: string; nombre: string; apellido: string; email: string; telefono: string; autos: Auto[]; } interface Turno { id: string; fechaInicio: string; fechaFin: string; estado: "PENDIENTE" | "CONFIRMADO" | "CANCELADO" | "COMPLETADO"; tipoServicio: { nombre: string }; auto: { patente: string }; } export default function ClientesPage() { const [busqueda, setBusqueda] = useState(""); const [clientes, setClientes] = useState([]); const [buscando, setBuscando] = useState(false); const [clienteSel, setClienteSel] = useState(null); const [turnos, setTurnos] = useState([]); async function buscar(e: React.FormEvent) { e.preventDefault(); setBuscando(true); const res = await fetch(`/api/admin/clientes?q=${encodeURIComponent(busqueda)}`); setClientes(await res.json()); setBuscando(false); setClienteSel(null); } async function verCliente(c: Cliente) { setClienteSel(c); const res = await fetch(`/api/admin/turnos?clienteId=${c.id}`); if (res.ok) setTurnos(await res.json()); } return (

Clientes

setBusqueda(e.target.value)} className="flex-1" />
{clientes.length > 0 && (
{clientes.map((c) => ( ))}
)} {clienteSel && (
Email{clienteSel.email} Teléfono{clienteSel.telefono}
{clienteSel.autos.length > 0 && (

Autos registrados

{clienteSel.autos.map((a) => ( {a.marca} {a.modelo} · {a.patente} ))}
)} {turnos.length > 0 && (

Últimos turnos

{turnos.slice(0, 5).map((t) => (
{t.tipoServicio.nombre} {new Date(t.fechaInicio).toLocaleDateString("es-AR")} ·{" "} {t.auto.patente}
))}
)}
)}
); }