import { BedDouble, Plus } from 'lucide-react'; import { getSupabaseServerClient } from '@kit/supabase/server-client'; import { Badge } from '@kit/ui/badge'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { createBookingManagementApi } from '@kit/booking-management/api'; import { CmsPageShell } from '~/components/cms-page-shell'; import { EmptyState } from '~/components/empty-state'; import { AccountNotFound } from '~/components/account-not-found'; interface PageProps { params: Promise<{ account: string }>; } export default async function RoomsPage({ params }: PageProps) { const { account } = await params; const client = getSupabaseServerClient(); const { data: acct } = await client .from('accounts') .select('id') .eq('slug', account) .single(); if (!acct) { return ( ); } const api = createBookingManagementApi(client); const rooms = await api.listRooms(acct.id); return (

Zimmerverwaltung

{rooms.length === 0 ? ( } title="Keine Zimmer vorhanden" description="Fügen Sie Ihr erstes Zimmer hinzu." actionLabel="Neues Zimmer" /> ) : ( Alle Zimmer ({rooms.length})
{rooms.map((room: Record) => ( ))}
Zimmernr. Name Typ Kapazität Preis/Nacht Aktiv
{String(room.room_number ?? '—')} {String(room.name ?? '—')} {String(room.room_type ?? '—')} {String(room.capacity ?? '—')} {room.price_per_night != null ? `${Number(room.price_per_night).toFixed(2)} €` : '—'} {room.is_active !== false ? '✓' : '✗'}
)}
); }