Files
backend/app/Services/Cartables/Mission/TransportationUnitService.php
2026-06-10 15:17:54 +03:30

41 lines
1.5 KiB
PHP

<?php
namespace App\Services\Cartables\Mission;
use App\Enums\MissionStates;
use App\Facades\DataTable\DataTableFacade;
use App\Models\Mission;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class TransportationUnitService
{
public function dataTable(Request $request)
{
$user = Auth::user();
$query = Mission::query()->whereIn('state_id', [MissionStates::REQUEST_CREATED->value, MissionStates::PENDING_CONFIRMATION->value]);
if ($user->hasPermissionTo('manage-transportation-unit-station')) {
$query->where('station_id', '=', $user->station_id);
} elseif ($user->hasPermissionTo('manage-transportation-unit-city')) {
$query->where('city_id', '=', $user->city_id);
} elseif ($user->hasPermissionTo('manage-transportation-unit-province')) {
$query->where('province_id', '=', $user->province_id);
}
return DataTableFacade::run(
$query,
$request,
allowedFilters: ['*'],
allowedSortings: ['*'],
allowedSelects: [
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id',
'end_date', 'request_date', 'end_point', 'encoded_route', 'zone', 'zone_fa', 'start_time', 'finish_time',
'code', 'category_id', 'category_name', 'explanation', 'km', 'city_id', 'city_name', 'province_id', 'station_name',
]
);
}
}