add transportation routes

This commit is contained in:
2025-05-20 09:50:10 +03:30
parent 5c2901f33a
commit 057ed49fd1
13 changed files with 91 additions and 39 deletions

View File

@@ -25,19 +25,23 @@ class RequestPortalController extends Controller
public function store(StoreRequest $request): JsonResponse
{
DB::transaction(function () use ($request) {
$user = auth()->user();
$state = MissionStates::REQUEST_CREATED->value;
$mission = Mission::query()->create([
'user_id'=> auth()->user()->id,
'user_id'=> $user->id,
'username'=> $user->username,
'province_id'=> $user->province_id,
'province_name'=> $user->province_fa,
'edare_shahri_id'=> $user->edare_shahri_id ?? null,
'edare_shahri_name'=> $user->edare_shahri_name ?? null,
'state_id' =>$state,
'state_name' => MissionStates::name($state),
'requested_machine_type' => $request->requested_machine_type,
'requested_machine_numbers' => $request->requested_machine_numbers,
'requested_machines' => $request->requested_machines,
'type' => $request->type,
'start_date' => $request->start_date,
'end_date' => $request->end_date,
'request_date' => $request->request_date,
'request_date' => now(),
'description' => $request->description,
'start_point' => $request->start_point,
'end_point' => $request->end_point,
]);
@@ -59,16 +63,14 @@ class RequestPortalController extends Controller
$mission->update([
'state_id' =>$state,
'state_name' => MissionStates::name($state),
'requested_machine_type' => $request->requested_machine_type,
'requested_machine_numbers' => $request->requested_machine_numbers,
'requested_machines' => $request->requested_machines,
'type' => $request->type,
'start_date' => $request->start_date,
'end_date' => $request->end_date,
'request_date' => $request->request_date,
'description' => $request->description,
'start_point' => $request->start_point,
'end_point' => $request->end_point,
]);
]);
$mission->rahdaran()->sync($request->rahdaran);
});

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\V3\Dashboard\Mission;
use App\Enums\MissionStates;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\Mission\TransportaionUnit\AllocateRequest;
use App\Http\Requests\V3\Mission\TransportaionUnit\DeallocateRequest;
use App\Http\Traits\ApiResponse;
use App\Models\Mission;
use App\Services\Cartables\Mission\TransportationUnitService;
@@ -33,13 +34,14 @@ class TransportationUnitController extends Controller
return $this->successResponse();
}
public function deallocate(Mission $mission): JsonResponse
public function deallocate(DeallocateRequest $request, Mission $mission): JsonResponse
{
$state = MissionStates::REJECT_BY_TRANSPORTATION->value;
$mission->update([
'state_id' => $state,
'state_name' => MissionStates::name($state),
'description' => $request->description
]);
return $this->successResponse();

View File

@@ -24,8 +24,7 @@ class StoreRequest extends FormRequest
return [
'rahdaran' => 'required|array',
'rahdaran.*' => 'exists:rahdaran,id',
'requested_machine_type' => 'required|string|max:255',
'requested_machine_numbers'=> 'required|integer|max:255',
'requested_machines' => 'required|array',
'type' => 'required|string|max:50',
'start_date' => 'required|date',
'end_date' => 'required|date',

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Mission\RequestPortal;
use App\Enums\MissionStates;
use Illuminate\Foundation\Http\FormRequest;
class UpdateRequest extends FormRequest
@@ -11,7 +12,7 @@ class UpdateRequest extends FormRequest
*/
public function authorize(): bool
{
return ($this->route('mission'))->user_id === auth()->id();
return $this->mission->user_id === auth()->user()->id && $this->mission->state_id == MissionStates::REJECT_BY_TRANSPORTATION->value;
}
/**
@@ -24,8 +25,7 @@ class UpdateRequest extends FormRequest
return [
'rahdaran' => 'required|array',
'rahdaran.*' => 'exists:rahdaran,id',
'requested_machine_type' => 'required|string|max:255',
'requested_machine_numbers'=> 'required|integer|max:255',
'requested_machines' => 'required|array',
'type' => 'required|string|max:50',
'start_date' => 'required|date',
'end_date' => 'required|date',

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\V3\Mission\TransportaionUnit;
use App\Enums\MissionStates;
use Illuminate\Foundation\Http\FormRequest;
class AllocateRequest extends FormRequest
@@ -11,7 +12,7 @@ class AllocateRequest extends FormRequest
*/
public function authorize(): bool
{
return $this->mission->edare_shahri_id == auth()->user()->edarate_shahri_id;
return $this->mission->edare_shahri_id == auth()->user()->edarate_shahri_id && $this->mission->state_id == MissionStates::REQUEST_CREATED->value;
}
/**

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\V3\Mission\TransportaionUnit;
use App\Enums\MissionStates;
use Illuminate\Foundation\Http\FormRequest;
class DeallocateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return $this->mission->edare_shahri_id == auth()->user()->edarate_shahri_id && $this->mission->state_id == MissionStates::REQUEST_CREATED->value;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'description' => 'string',
];
}
}