import { createClient } from "@/lib/supabase/server" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table" import { Button } from "@/components/ui/button" import { Plus, Calendar as CalendarIcon, Clock, MapPin, User, Package } from "lucide-react" import Link from "next/link" import { format } from "date-fns" import { tr } from "date-fns/locale" import { Badge } from "@/components/ui/badge" import { Card, CardContent, CardFooter, CardHeader } from "@/components/ui/card" export default async function ReservationsPage() { const supabase = await createClient() const { data: reservations } = await supabase .from('reservations') .select(` id, start_time, end_time, status, halls (name), customers (full_name), packages (name, price) `) .order('start_time', { ascending: true }) const getStatusBadge = (status: string) => { switch (status) { case 'confirmed': return Onaylandı case 'pending': return Bekliyor case 'cancelled': return İptal case 'completed': return Tamamlandı default: return {status} } } return (

Rezervasyonlar

{/* Desktop View */}
Tarih Saat Salon Müşteri Paket Durum İşlemler {reservations?.length === 0 ? ( Henüz rezervasyon yok. ) : ( reservations?.map((res) => ( {format(new Date(res.start_time), 'd MMMM yyyy', { locale: tr })} {format(new Date(res.start_time), 'HH:mm')} - {format(new Date(res.end_time), 'HH:mm')} {res.halls?.name} {res.customers?.full_name} {res.packages?.name} {res.packages?.price && ₺{res.packages.price}} {getStatusBadge(res.status || 'pending')} )) )}
{/* Mobile View */}
{reservations?.length === 0 ? (
Henüz rezervasyon yok.
) : ( reservations?.map((res) => ( {format(new Date(res.start_time), 'd MMMM yyyy', { locale: tr })} {getStatusBadge(res.status || 'pending')}
{format(new Date(res.start_time), 'HH:mm')} - {format(new Date(res.end_time), 'HH:mm')}
{res.halls?.name}
{res.customers?.full_name}
{res.packages?.name && (
{res.packages.name} {res.packages.price && (₺{res.packages.price})}
)}
)) )}
) }