feature: portrait lot picker cards with images, admin image upload support
This commit is contained in:
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',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ class ParkingLot extends Model
|
||||
'longitude',
|
||||
'working_hours',
|
||||
'is_active',
|
||||
'image',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
|
||||
Reference in new issue
Block a user