import { eq } from 'drizzle-orm';
import { notFound } from 'next/navigation';
import ServiceForm from '@/components/admin/service-form';
import AdminLayout from '@/components/layout/admin-layout';
import { db } from '@/db/drizzle';
import { service } from '@/db/schema';

interface EditServicePageProps {
  params: {
    id: string;
  };
}

export default async function EditServicePage({
  params,
}: EditServicePageProps) {
  // Await the params if you need to process them asynchronously
  // Though typically params are available synchronously in Next.js
  const awaitedParams = await Promise.resolve(params);

  const serviceData = await db
    .select()
    .from(service)
    .where(eq(service.id, awaitedParams.id))
    .limit(1)
    .then((rows) => rows[0]);

  if (!serviceData) {
    notFound();
  }

  return (
    <AdminLayout>
      <div className="flex flex-1 flex-col space-y-8 p-8">
        <div className="flex items-center justify-between space-y-2">
          <div>
            <h2 className="font-bold text-2xl tracking-tight">Edit Service</h2>
            <p className="text-muted-foreground">
              Edit the details of your service.
            </p>
          </div>
        </div>
        <ServiceForm initialData={serviceData} />
      </div>
    </AdminLayout>
  );
}
