
PK 
<?php
namespace App\Http\Controllers;
use App\Models\ShippingAddress;
use Illuminate\Http\Request;
class ShippingAddressController extends Controller
{
public function edit($id)
{
$address = ShippingAddress::where('id', $id)
->where('user_id', auth()->id())
->firstOrFail();
return response()->json($address);
}
// In your ShippingAddressController.php
// ShippingAddressController.php
public function store(Request $request)
{
$request->validate([
'first_name' => 'required|string|max:255',
'email' => 'required|email|max:255',
'phone' => 'required|string|max:15|min:10',
'country' => 'required|string|max:255',
'address1' => 'required|string|max:255',
'address2' => 'nullable|string|max:255',
'post_code' => 'required|string|max:10|min:6',
]);
try {
$address = ShippingAddress::create([
'user_id' => auth()->id(),
'first_name' => $request->first_name,
'email' => $request->email,
'phone' => $request->phone,
'country' => $request->country,
'address1' => $request->address1,
'address2' => $request->address2,
'post_code' => $request->post_code,
'isActive' => 1
]);
return response()->json([
'status' => 'success',
'message' => 'Address added successfully',
'address' => $address
]);
} catch (\Exception $e) {
return response()->json([
'status' => 'error',
'message' => 'Error saving address: ' . $e->getMessage()
], 500);
}
}
public function update(Request $request, $id)
{
$request->validate([
'first_name' => 'required|string|max:255',
'phone' => 'required|string|max:15',
'country' => 'required|string|max:255',
'address1' => 'required|string|max:255',
'post_code' => 'required|string|max:10',
]);
$address = ShippingAddress::where('id', $id)
->where('user_id', auth()->id())
->firstOrFail();
$address->update([
'first_name' => $request->first_name,
'email' => $request->email ?? auth()->user()->email,
'phone' => $request->phone,
'country' => $request->country,
'address1' => $request->address1,
'address2' => $request->address2,
'post_code' => $request->post_code,
]);
return response()->json([
'status' => 'success',
'message' => 'Address updated successfully',
'address' => $address
]);
}
public function destroy($id)
{
$address = ShippingAddress::where('id', $id)
->where('user_id', auth()->id())
->firstOrFail();
// Update isActive to 0 instead of deleting
$address->update(['isActive' => 0]);
return response()->json([
'status' => 'success',
'message' => 'Address deactivated successfully'
]);
}
}


PK 99