Commit f458cd55 authored by Mahmoud Aglan's avatar Mahmoud Aglan

Fix TypeError: Router passes route params as strings, not int

Cast string params to int at the start of each controller method.
Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent 8baae872
......@@ -64,17 +64,17 @@ class FacilityGridController extends Controller
return $this->redirect('/facility-grids/' . $grid->id)->withSuccess('تم إنشاء الشبكة بنجاح');
}
public function show(Request $request, int $id): Response
public function show(Request $request, string $id): Response
{
$this->authorize('facility_grid.view');
$grid = FacilityGrid::find($id);
$grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
$date = $_GET['date'] ?? date('Y-m-d');
$time = $_GET['time'] ?? null;
$planMonth = $_GET['month'] ?? substr($date, 0, 7);
$state = GridStateService::getState($id, $date, $time);
$state = GridStateService::getState((int) $id, $date, $time);
return $this->view('FacilityGrids.Views.show', [
'grid' => $grid,
......@@ -84,11 +84,11 @@ class FacilityGridController extends Controller
]);
}
public function edit(Request $request, int $id): Response
public function edit(Request $request, string $id): Response
{
$this->authorize('facility_grid.manage');
$grid = FacilityGrid::find($id);
$grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
return $this->view('FacilityGrids.Views.edit', [
......@@ -98,11 +98,11 @@ class FacilityGridController extends Controller
]);
}
public function update(Request $request, int $id): Response
public function update(Request $request, string $id): Response
{
$this->authorize('facility_grid.manage');
$grid = FacilityGrid::find($id);
$grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
$rules = [
......@@ -128,23 +128,23 @@ class FacilityGridController extends Controller
'physical_width' => !empty($_POST['physical_width']) ? (float) $_POST['physical_width'] : null,
]);
$this->regenerateZones($id, (int) $_POST['rows_count'], (int) $_POST['cols_count']);
$this->regenerateZones((int) $id, (int) $_POST['rows_count'], (int) $_POST['cols_count']);
return $this->redirect('/facility-grids/' . $id)->withSuccess('تم تحديث الشبكة');
}
public function apiState(Request $request, int $id): Response
public function apiState(Request $request, string $id): Response
{
$date = $_GET['date'] ?? date('Y-m-d');
$time = $_GET['time'] ?? null;
$state = GridStateService::getState($id, $date, $time);
$state = GridStateService::getState((int) $id, $date, $time);
return $this->json(['success' => true, 'data' => $state]);
}
public function toggle(Request $request, int $id): Response
public function toggle(Request $request, string $id): Response
{
$this->authorize('facility_grid.manage');
$grid = FacilityGrid::find($id);
$grid = FacilityGrid::find((int) $id);
if (!$grid) return $this->json(['success' => false, 'message' => 'غير موجود']);
$grid->update(['is_active' => $grid->is_active ? 0 : 1]);
......
......@@ -13,9 +13,10 @@ use App\Modules\FacilityGrids\Services\GridStateService;
class ZoneScheduleController extends Controller
{
public function index(Request $request, int $gridId): Response
public function index(Request $request, string $gridId): Response
{
$this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$grid = FacilityGrid::find($gridId);
if (!$grid) return $this->redirect('/facility-grids')->withError('الشبكة غير موجودة');
......@@ -30,9 +31,10 @@ class ZoneScheduleController extends Controller
]);
}
public function store(Request $request, int $gridId): Response
public function store(Request $request, string $gridId): Response
{
$this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$grid = FacilityGrid::find($gridId);
if (!$grid) return $this->json(['success' => false, 'message' => 'شبكة غير موجودة']);
......@@ -110,9 +112,11 @@ class ZoneScheduleController extends Controller
]);
}
public function update(Request $request, int $gridId, int $scheduleId): Response
public function update(Request $request, string $gridId, string $scheduleId): Response
{
$this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$scheduleId = (int) $scheduleId;
$schedule = FacilityZoneSchedule::find($scheduleId);
if (!$schedule || (int) $schedule->grid_id !== $gridId) {
......@@ -171,9 +175,11 @@ class ZoneScheduleController extends Controller
return $this->json(['success' => true, 'message' => 'تم تحديث الجدول']);
}
public function destroy(Request $request, int $gridId, int $scheduleId): Response
public function destroy(Request $request, string $gridId, string $scheduleId): Response
{
$this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$scheduleId = (int) $scheduleId;
$schedule = FacilityZoneSchedule::find($scheduleId);
if (!$schedule || (int) $schedule->grid_id !== $gridId) {
......@@ -184,8 +190,9 @@ class ZoneScheduleController extends Controller
return $this->json(['success' => true, 'message' => 'تم حذف الجدول']);
}
public function checkConflicts(Request $request, int $gridId): Response
public function checkConflicts(Request $request, string $gridId): Response
{
$gridId = (int) $gridId;
$grid = FacilityGrid::find($gridId);
if (!$grid) return $this->json(['success' => false]);
......
......@@ -10,9 +10,10 @@ use App\Core\App;
class ZoneTraineeController extends Controller
{
public function assign(Request $request, int $gridId): Response
public function assign(Request $request, string $gridId): Response
{
$this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$db = App::getInstance()->db();
$zoneId = (int) ($_POST['zone_id'] ?? 0);
......@@ -49,18 +50,21 @@ class ZoneTraineeController extends Controller
return $this->json(['success' => true, 'message' => 'تم تسجيل المتدرب']);
}
public function remove(Request $request, int $gridId, int $traineeId): Response
public function remove(Request $request, string $gridId, string $traineeId): Response
{
$this->authorize('facility_grid.manage');
$traineeId = (int) $traineeId;
$db = App::getInstance()->db();
$db->delete('facility_zone_trainees', 'id = ?', [$traineeId]);
return $this->json(['success' => true, 'message' => 'تم إزالة المتدرب']);
}
public function move(Request $request, int $gridId, int $traineeId): Response
public function move(Request $request, string $gridId, string $traineeId): Response
{
$this->authorize('facility_grid.manage');
$gridId = (int) $gridId;
$traineeId = (int) $traineeId;
$db = App::getInstance()->db();
$targetZoneId = (int) ($_POST['target_zone_id'] ?? 0);
......@@ -88,9 +92,10 @@ class ZoneTraineeController extends Controller
return $this->json(['success' => true, 'message' => 'تم نقل المتدرب']);
}
public function clearZone(Request $request, int $gridId, int $zoneId): Response
public function clearZone(Request $request, string $gridId, string $zoneId): Response
{
$this->authorize('facility_grid.manage');
$zoneId = (int) $zoneId;
$db = App::getInstance()->db();
$db->delete('facility_zone_trainees', 'zone_id = ?', [$zoneId]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment