feature: portrait lot picker cards with images, admin image upload support

This commit is contained in:
ghassan committed 2026-04-15 12:21:40 +03:00
1 parent 7f21788ad6
commit 3643fdb5d4
8 files changed
+270 -165

No files matched your search

@@ -7,6 +7,7 @@ use App\Http\Requests\StoreParkingLotRequest;
use App\Models\ParkingLot;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Storage;
class ParkingLotController extends Controller
{
@@ -32,7 +33,13 @@ class ParkingLotController extends Controller
public function store(StoreParkingLotRequest $request): JsonResponse
{
$parkingLot = ParkingLot::create($request->validated());
$data = $request->validated();
if ($request->hasFile('image')) {
$data['image'] = $request->file('image')->store('parking-lots', 'public');
}
$parkingLot = ParkingLot::create($data);
return response()->json([
'success' => true,
@@ -43,7 +50,16 @@ class ParkingLotController extends Controller
public function update(StoreParkingLotRequest $request, ParkingLot $parkingLot): JsonResponse
{
$parkingLot->update($request->validated());
$data = $request->validated();
if ($request->hasFile('image')) {
if ($parkingLot->image) {
Storage::disk('public')->delete($parkingLot->image);
}
$data['image'] = $request->file('image')->store('parking-lots', 'public');
}
$parkingLot->update($data);
return response()->json([
'success' => true,
@@ -29,6 +29,7 @@ class OperatorController extends Controller
'hours' => $lot->working_hours,
'lat' => (float) $lot->latitude,
'lng' => (float) $lot->longitude,
'image' => $lot->image ? Storage::url($lot->image) : null,
])->values();
$selectedLotId = $request->get('lot_id');
@@ -30,6 +30,7 @@ class StoreParkingLotRequest extends FormRequest
'longitude' => 'required|numeric|between:-180,180',
'working_hours' => 'required|string|max:100',
'is_active' => 'boolean',
'image' => 'nullable|image|mimes:jpg,jpeg,png,webp|max:3072',
];
}