create mission state enum
This commit is contained in:
28
app/Enums/MissionStates.php
Normal file
28
app/Enums/MissionStates.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum MissionStates: int
|
||||
{
|
||||
case REQUEST_CREATED= 1;
|
||||
case PENDING_CONFIRMATION = 2;
|
||||
case START_MISSION = 3;
|
||||
|
||||
case END_MISSION = 4;
|
||||
case REJECT_BY_TRANSPORTATION = 5;
|
||||
case REJECT_BY_CONTROL_UNIT = 6;
|
||||
|
||||
public static function name(int $state): string
|
||||
{
|
||||
$mapArray = [
|
||||
1 => 'درخواست ایجاد شد و در حال بررسی در توسط واحد نقلیه است',
|
||||
2 => 'خودرو اختصاص داده شد و درخواست توسط واحد کنترل در حال بررسی است',
|
||||
3 => 'درخواست توسط واحد کنترل تایید شد و ماموریت آغاز می شود',
|
||||
4 => 'اتمام ماموریت',
|
||||
5 => 'عدم تخصیص خودرو توسط واحد نقلیه و بازگشت درخواست به کارتابل کاربر',
|
||||
6 => 'عدم تایید توسط واحد کنترل',
|
||||
];
|
||||
|
||||
return $mapArray[$state];
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
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\Traits\ApiResponse;
|
||||
use App\Models\Mission;
|
||||
use App\Services\Cartables\Mission\TransportationUnitService;
|
||||
@@ -18,19 +20,28 @@ class TransportationUnitController extends Controller
|
||||
return response()->json($transportationUnitService->dataTable($request));
|
||||
}
|
||||
|
||||
public function allocate(Request $request, Mission $mission): JsonResponse
|
||||
public function allocate(AllocateRequest $request, Mission $mission): JsonResponse
|
||||
{
|
||||
$mission->machines()->attach($request->machines);
|
||||
|
||||
$state = MissionStates::PENDING_CONFIRMATION->value;
|
||||
$mission->update([
|
||||
'state' => ''
|
||||
'state_id' => $state,
|
||||
'state_name' => MissionStates::name($state),
|
||||
]);
|
||||
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function deallocate()
|
||||
public function deallocate(Mission $mission): JsonResponse
|
||||
{
|
||||
|
||||
$state = MissionStates::REJECT_BY_TRANSPORTATION->value;
|
||||
|
||||
$mission->update([
|
||||
'state_id' => $state,
|
||||
'state_name' => MissionStates::name($state),
|
||||
]);
|
||||
|
||||
return $this->successResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\V3\Mission\TransportaionUnit;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class AllocateRequest 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'machines' => 'required|array',
|
||||
'machines.*' => 'required|integer|exists:cmms_machines,id',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services\Cartables\Mission;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use App\Exceptions\ProhibitedAction;
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\Mission;
|
||||
@@ -14,14 +15,12 @@ class TransportationUnitService
|
||||
$user = auth()->user();
|
||||
|
||||
$fields = [
|
||||
'id','lat','lon', 'recognize_picture','action_picture','created_at','step', 'final_description',
|
||||
'info_fa', 'activity_date_time', 'action_picture_document_upload_date', 'judiciary_document_upload_date',
|
||||
'step_fa', 'axis_type_id', 'axis_type_name', 'action_date', 'is_finished', 'status_fa', 'supervisor_description', 'operator_description'
|
||||
'id', '', '', '', ''
|
||||
];
|
||||
|
||||
throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!'));
|
||||
// throw_if(is_null($user->edarate_shahri_id), new ProhibitedAction('اداره ای برای شما در سامانه ثبت نشده است!'));
|
||||
|
||||
$query = Mission::query()->where('', '=', '');
|
||||
$query = Mission::query()->where('state_id', '=', MissionStates::REQUEST_CREATED->value);
|
||||
|
||||
return DataTableFacade::run(
|
||||
$query,
|
||||
|
||||
@@ -13,11 +13,15 @@ return new class extends Migration
|
||||
{
|
||||
Schema::create('missions', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->foreignId('user_id')->constrained('users');
|
||||
$table->foreignId('machine_id')->nullable()->constrained('cmms_machines');
|
||||
$table->foreignId('rahdar_id')->constrained('rahdaran');
|
||||
$table->foreignId('state_id')->constrained('mission_states');
|
||||
$table->foreignId('user_id')->constrained('users')->cascadeOnDelete();
|
||||
$table->foreignId('machine_id')->nullable()->constrained('cmms_machines')->noActionOnDelete();
|
||||
$table->foreignId('rahdar_id')->constrained('rahdaran')->noActionOnDelete();
|
||||
$table->foreignId('state_id')->constrained('mission_states')->noActionOnDelete();
|
||||
$table->string('state_name');
|
||||
$table->foreignId('province_id')->constrained('provinces')->noActionOnDelete();
|
||||
$table->string('province_name');
|
||||
$table->foreignId('edare_shahri_id')->constrained('edarate_shahri')->noActionOnDelete();
|
||||
$table->string('edare_shahri_name');
|
||||
$table->string('requested_machine_type');
|
||||
$table->integer('requested_machine_numbers');
|
||||
$table->string('type');
|
||||
|
||||
Reference in New Issue
Block a user