import type { Metadata } from 'next';
import { getDb } from '@pintrush/db';
import { CreateVenueForm } from '@/components/admin/CreateVenueForm';
import { PageHeader, Panel } from '@/components/host/ui';
import { requireAdmin } from '@/lib/auth/session';
import { US_TIME_ZONES } from '../../../_lib/timezones';
import { createVenue } from '../actions';

export const metadata: Metadata = { title: 'New venue' };

export default async function NewVenuePage() {
  await requireAdmin('/admin/venues/new');
  const plans = await getDb().plan.findMany({ orderBy: { sortOrder: 'asc' }, select: { key: true, name: true, priceCents: true, interval: true } });
  return (
    <div className="flex flex-col gap-8">
      <PageHeader
        kicker="Venues"
        title="New venue"
        description="Creates the venue, its first room, an owner login and a trial entitlement in one step. Nothing is saved if any part fails."
      />
      <Panel>
        <CreateVenueForm action={createVenue} plans={plans} timezones={US_TIME_ZONES} />
      </Panel>
    </div>
  );
}
