import { asc, desc, eq } from "drizzle-orm";
import { db } from "@/db";
import { consultations, settings } from "@/db/schema";
import { updateConsultation, saveConsultationConfig } from "@/app/admin/actions";
export default async function TC({ searchParams }: { searchParams: Promise<{ view?: string }> }) {
  const sched = (await searchParams).view === "schedule";
  const rows = await db.select().from(consultations).orderBy(sched ? asc(consultations.date) : desc(consultations.id));
  const [cfg] = await db.select().from(settings).where(eq(settings.key, "consultation"));
  const v = (cfg?.value as { types?: string[]; times?: string[]; clinicians?: string[] }) || {};
  const list = sched ? rows.filter((r) => r.status === "Confirmed" && r.date >= new Date().toISOString().slice(0, 10)) : rows;
  return <div><h1 className="text-2xl font-extrabold mb-5">{sched ? "Appointments – upcoming schedule" : "Teleconsultations"}</h1>
    <div className="grid xl:grid-cols-[2fr_1fr] gap-5"><div className="space-y-3">{list.map((r) => <form key={r.id} action={updateConsultation} className="card p-5 grid md:grid-cols-[1.3fr_1fr] gap-4"><input type="hidden" name="id" value={r.id} /><div className="text-sm"><b>TC-{r.id} · {r.type}</b><div>{r.name} · <a href={`tel:${r.phone}`} className="text-brand">{r.phone}</a></div><div className="text-xs text-slate-500">{r.email}</div>{r.notes && <p className="text-slate-600 mt-1">“{r.notes}”</p>}<a href={`https://wa.me/${r.phone.replace(/^0/, "256").replace(/\D/g, "")}?text=${encodeURIComponent(`Reminder: your MARHATAB teleconsultation is on ${r.date} at ${r.time}.`)}`} target="_blank" rel="noopener" className="text-xs text-[#128C7E] font-semibold mt-2 inline-block">Send WhatsApp reminder</a></div>
      <div className="space-y-2"><div className="flex gap-2"><input name="date" type="date" defaultValue={r.date} className="input" /><input name="time" defaultValue={r.time} className="input !w-24" /></div><select name="clinician" defaultValue={r.clinician} className="input"><option value="">Assign clinician</option>{(v.clinicians || []).map((c) => <option key={c}>{c}</option>)}</select><select name="status" defaultValue={r.status} className="input">{["Requested", "Confirmed", "Rescheduled", "Completed", "Cancelled"].map((s) => <option key={s}>{s}</option>)}</select><button className="btn btn-green !py-2 w-full">Update</button></div></form>)}{!list.length && <p className="text-sm text-slate-500">Nothing here yet.</p>}</div>
    <form action={saveConsultationConfig} className="card p-6 space-y-3 h-fit"><h3 className="font-bold">Availability & clinicians</h3><label className="block"><span className="label">Consultation types (one per line)</span><textarea name="types" rows={4} defaultValue={(v.types || ["General Health Consultation", "Medication Review", "Mother & Baby Advice", "Chronic Condition Follow-up"]).join("\n")} className="input" /></label><label className="block"><span className="label">Available time slots</span><textarea name="times" rows={3} defaultValue={(v.times || ["09:00", "10:00", "11:00", "14:00", "15:00", "16:00"]).join(", ")} className="input" /></label><label className="block"><span className="label">Authorised clinicians (one per line)</span><textarea name="clinicians" rows={3} defaultValue={(v.clinicians || []).join("\n")} className="input" /></label><button className="btn btn-green">Save</button></form></div></div>;
}
