diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 74ec9be3..e8e4e72d 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -33,9 +33,15 @@ class RequestPortalController extends Controller { DB::transaction(function () use ($request) { $user = auth()->user(); + $state = MissionStates::REQUEST_CREATED->value; $category = $request->category_id; + $start_timestamp = strtotime($request->start_date); + $end_timestamp = strtotime($request->end_date); + + $mission_duration = $end_timestamp - $start_timestamp; + $mission = Mission::query()->create([ 'user_id' => $user->id, 'username' => $user->username, @@ -60,6 +66,7 @@ class RequestPortalController extends Controller 'category_name' => MissionCategory::name($category), 'explanation' => $request->explanation, 'code' => rand(100000, 999999), + 'mission_duration' => $mission_duration, ]); $mission->rahdaran()->sync($request->rahdaran); diff --git a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php index 250a1f51..22812e63 100644 --- a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php +++ b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php @@ -29,12 +29,19 @@ class SendDataToFMSListener implements ShouldQueue $this->getErrorRateService->setInputParameters([ 'missionArea' => $mission->area['coordinates'], - 'missionStartDT' => $mission->start_date, - 'missionEndDT' => $mission->end_date, + 'missionStartDT' => $mission->start_date->format('Y-m-d\TH:i:s'), + 'missionEndDT' => $mission->end_date->format('Y-m-d\TH:i:s'), 'machineCode' => $mission->machines()->first('cmms_machines.machine_code'), 'areaType' => $mission->area['type'] === 'polygon' ? 1 : 2, ]); - $this->getErrorRateService->run(); + $responseData = $this->getErrorRateService->run(); + + $mission->update([ + 'in_area_duration' => $responseData['TimeInAreaSeconds'], + 'first_enter' => $responseData['FirstEnter'], + 'last_exit' => $responseData['LastExit'], + 'point_number_sent' => $responseData['NoOfPointsInMission'], + ]); } } diff --git a/database/migrations/2025_09_23_095848_add_column_to_missions_table.php b/database/migrations/2025_09_23_095848_add_column_to_missions_table.php new file mode 100644 index 00000000..a2eb49b2 --- /dev/null +++ b/database/migrations/2025_09_23_095848_add_column_to_missions_table.php @@ -0,0 +1,32 @@ +bigInteger('mission_duration')->nullable(); + $table->bigInteger('in_area_duration')->nullable(); + $table->timestamps('first_enter')->nullable(); + $table->timestamps('last_exit')->nullable(); + $table->integer('point_number_sent')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('missions', function (Blueprint $table) { + // + }); + } +};