create area for mission and asaynd geometry

This commit is contained in:
2025-06-09 15:45:51 +03:30
parent 6652ed7e19
commit 1b6870d7f4
5 changed files with 15 additions and 2 deletions

View File

@@ -27,6 +27,11 @@ class RequestPortalController extends Controller
DB::transaction(function () use ($request) { DB::transaction(function () use ($request) {
$user = auth()->user(); $user = auth()->user();
$state = MissionStates::REQUEST_CREATED->value; $state = MissionStates::REQUEST_CREATED->value;
$geojson = [
'type' => 'Polygon',
'coordinates' => [$request->area]
];
$mission = Mission::query()->create([ $mission = Mission::query()->create([
'user_id' => $user->id, 'user_id' => $user->id,
'username' => $user->username, 'username' => $user->username,
@@ -43,6 +48,7 @@ class RequestPortalController extends Controller
'request_date' => now(), 'request_date' => now(),
'description' => $request->description, 'description' => $request->description,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => json_encode($geojson)
]); ]);
$mission->rahdaran()->attach($request->rahdaran); $mission->rahdaran()->attach($request->rahdaran);
@@ -60,6 +66,10 @@ class RequestPortalController extends Controller
{ {
DB::transaction(function () use ($mission, $request) { DB::transaction(function () use ($mission, $request) {
$state = MissionStates::REQUEST_CREATED->value; $state = MissionStates::REQUEST_CREATED->value;
$geojson = [
'type' => 'Polygon',
'coordinates' => [$request->area]
];
$mission->update([ $mission->update([
'state_id' => $state, 'state_id' => $state,
'state_name' => MissionStates::name($state), 'state_name' => MissionStates::name($state),
@@ -70,6 +80,7 @@ class RequestPortalController extends Controller
'request_date' => $request->request_date, 'request_date' => $request->request_date,
'description' => $request->description, 'description' => $request->description,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => json_encode($geojson)
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
@@ -77,7 +88,6 @@ class RequestPortalController extends Controller
return $this->successResponse(); return $this->successResponse();
} }
public function destroy(Mission $mission): JsonResponse public function destroy(Mission $mission): JsonResponse
{ {
DB::transaction(function () use ($mission) { DB::transaction(function () use ($mission) {

View File

@@ -31,6 +31,7 @@ class StoreRequest extends FormRequest
'request_date' => 'required|date', 'request_date' => 'required|date',
'description' => 'string', 'description' => 'string',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|array',
]; ];
} }
} }

View File

@@ -32,6 +32,7 @@ class UpdateRequest extends FormRequest
'request_date' => 'required|date', 'request_date' => 'required|date',
'description' => 'string', 'description' => 'string',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|array',
]; ];
} }
} }

View File

@@ -18,7 +18,7 @@ class RequestPortalService
$fields = [ $fields = [
'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name',
'description', 'requested_machines', 'type', 'start_date', 'description', 'requested_machines', 'type', 'start_date',
'end_date', 'request_date', 'end_point', 'end_date', 'request_date', 'end_point', 'area'
]; ];
$query = Mission::query(); $query = Mission::query();

View File

@@ -31,6 +31,7 @@ return new class extends Migration
$table->dateTime('request_date'); $table->dateTime('request_date');
$table->text('description')->nullable(); $table->text('description')->nullable();
$table->string('end_point'); $table->string('end_point');
$table->geometry('area');
$table->timestamps(); $table->timestamps();
}); });
} }