diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx index e3ebb4f..ae371cd 100644 --- a/src/app/dashboard/layout.tsx +++ b/src/app/dashboard/layout.tsx @@ -2,17 +2,26 @@ import { MainNav } from "@/components/main-nav" import { UserNav } from "@/components/user-nav" import { Building } from "lucide-react" import { MobileSidebar } from "@/components/mobile-sidebar" +import { createClient } from "@/lib/supabase/server" -export default function DashboardLayout({ +export default async function DashboardLayout({ children, }: { children: React.ReactNode }) { + const supabase = await createClient() + const { data: { user } } = await supabase.auth.getUser() + + const userData = user ? { + name: user.user_metadata?.full_name || user.email?.split('@')[0], + email: user.email || null + } : undefined + return (
Damat Yöre
+{reservation.groom_region}
+Gelin Yöre
+{reservation.bride_region}
+Notlar
diff --git a/src/app/dashboard/reservations/new/actions.ts b/src/app/dashboard/reservations/new/actions.ts index e320ef8..e8cc860 100644 --- a/src/app/dashboard/reservations/new/actions.ts +++ b/src/app/dashboard/reservations/new/actions.ts @@ -8,10 +8,13 @@ import { logAction } from "@/lib/logger" export async function createReservation(data: { hall_id: string customer_id: string - package_id?: string + package_id: string // Made required based on user request start_time: string end_time: string notes?: string + groom_region?: string + bride_region?: string + price: number }) { const supabase = await createClient() @@ -36,11 +39,14 @@ export async function createReservation(data: { const { data: newReservation, error } = await supabase.from('reservations').insert({ hall_id: data.hall_id, customer_id: data.customer_id, - package_id: data.package_id || null, + package_id: data.package_id, start_time: data.start_time, end_time: data.end_time, status: 'pending', // Default to pending, admin must confirm notes: data.notes, + groom_region: data.groom_region, + bride_region: data.bride_region, + price: data.price, }).select().single() if (error) { diff --git a/src/app/dashboard/reservations/new/reservation-form.tsx b/src/app/dashboard/reservations/new/reservation-form.tsx index 00f4714..a94cb80 100644 --- a/src/app/dashboard/reservations/new/reservation-form.tsx +++ b/src/app/dashboard/reservations/new/reservation-form.tsx @@ -16,8 +16,7 @@ import { Input } from "@/components/ui/input" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" import { Textarea } from "@/components/ui/textarea" import { createReservation } from "./actions" -import { useState } from "react" -import { toast } from "sonner" +import { useState, useEffect } from "react" import { Check, ChevronsUpDown } from "lucide-react" import { cn } from "@/lib/utils" import { @@ -37,11 +36,15 @@ import { const formSchema = z.object({ hall_id: z.string().min(1, "Salon seçmelisiniz."), customer_id: z.string().min(1, "Müşteri seçmelisiniz."), - package_id: z.string().optional(), + package_id: z.string().min(1, "Paket seçmelisiniz."), date: z.string().min(1, "Tarih seçmelisiniz."), start_time: z.string().min(1, "Başlangıç saati seçmelisiniz."), end_time: z.string().min(1, "Bitiş saati seçmelisiniz."), notes: z.string().optional(), + groom_region: z.string().optional(), + bride_region: z.string().optional(), + price: z.coerce.number().min(0, "Fiyat 0'dan küçük olamaz."), + discount_rate: z.coerce.number().min(0).max(100).optional(), }) interface ReservationFormProps { @@ -56,7 +59,7 @@ export function ReservationForm({ halls, customers, packages }: ReservationFormP const [openCustomer, setOpenCustomer] = useState(false) const form = useForm