json(Customer::with(['address', 'delivery'])->orderBy('name')->get()); } /** * Store a newly created resource in storage. */ public function store(Request $request): JsonResponse { $customerData = $request->validate([ 'name' => 'required|string', 'email' => 'required|string|email|unique:customers' ]); $customer = new Customer($customerData); $customer->save(); return response()->json($customer); } /** * Display the specified resource. */ public function show(Customer $customer): JsonResponse { return response()->json($customer); } /** * Update the specified resource in storage. */ public function update(Request $request, Customer $customer): JsonResponse { $customerData = $request->validate([ 'name' => 'required|string', 'email' => ['required', 'string', 'email', Rule::unique('customers')->ignore($customer->id)], ]); $customer->update($customerData); return response()->json($customer); } /** * Remove the specified resource from storage. */ public function destroy(Customer $customer): JsonResponse { $customer->delete(); return response()->json(null, 204); } }