add area for rahdari points

This commit is contained in:
2025-09-06 10:20:22 +03:30
parent 816f515940
commit 29de3a7d29
9 changed files with 61 additions and 14 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\V3\Dashboard\Mission;
use App\Enums\MissionStates; use App\Enums\MissionStates;
use App\Events\V3\Dashboard\Mission\SendDataToFMSEvent; use App\Events\V3\Dashboard\Mission\SendDataToFMSEvent;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Controllers\V3\Dashboard\RoadPatrol\OperatorController;
use App\Http\Requests\V3\Mission\ControlUnit\FinishRequest; use App\Http\Requests\V3\Mission\ControlUnit\FinishRequest;
use App\Http\Requests\V3\Mission\ControlUnit\StartRequest; use App\Http\Requests\V3\Mission\ControlUnit\StartRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
@@ -60,6 +61,11 @@ class ControlUnitController extends Controller
]); ]);
}); });
if ($mission->category_id == 2) {
$rpc = new OperatorController();
$rpc->store($mission);
}
SendDataToFMSEvent::dispatch($mission); SendDataToFMSEvent::dispatch($mission);
return $this->successResponse(); return $this->successResponse();

View File

@@ -34,6 +34,7 @@ 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;
$category = $request->category_id;
$mission = Mission::query()->create([ $mission = Mission::query()->create([
'user_id' => $user->id, 'user_id' => $user->id,
@@ -55,20 +56,15 @@ class RequestPortalController extends Controller
'description' => $request->description, 'description' => $request->description,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => json_encode($request->area), 'area' => json_encode($request->area),
'category_id' => $request->category_id, 'category_id' => $category,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($category),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
'code' => rand(100000, 999999), 'code' => rand(100000, 999999),
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
if ($request->category_id == 2) { if ($category == 3){
$rpc = new OperatorController();
$rpc->store($mission);
}
if ($request->category_id == 3){
RoadObserved::query() RoadObserved::query()
->find($request->road_observed_id) ->find($request->road_observed_id)
->missions() ->missions()

View File

@@ -104,6 +104,7 @@ class RoadMaintenanceStationController extends Controller
'lat' => $request->lat, 'lat' => $request->lat,
'lng' => $request->lng, 'lng' => $request->lng,
'updated_at_fa' => verta()->now()->format('Y/m/d H:i:s'), 'updated_at_fa' => verta()->now()->format('Y/m/d H:i:s'),
'area' => json_encode($request->area),
]); ]);
$uploadPaths = [ $uploadPaths = [

View File

@@ -48,8 +48,8 @@ class OperatorController extends Controller
'province_fa' => $mission->province_name, 'province_fa' => $mission->province_name,
'edare_id' => $mission->edare_shahri_id, 'edare_id' => $mission->edare_shahri_id,
'edare_name' => $mission->edare_shahri_name, 'edare_name' => $mission->edare_shahri_name,
'start_time' => $mission->start_date, 'start_time' => $mission->start_time,
'end_time' => $mission->end_date, 'end_time' => $mission->finish_time,
]); ]);
$road_patrol->missions()->attach($mission->id); $road_patrol->missions()->attach($mission->id);

View File

@@ -8,6 +8,7 @@ use App\Http\Requests\V3\Rahdaran\StoreRequest;
use App\Http\Requests\V3\Rahdaran\UpdateRequest; use App\Http\Requests\V3\Rahdaran\UpdateRequest;
use App\Http\Traits\ApiResponse; use App\Http\Traits\ApiResponse;
use App\Models\Rahdaran; use App\Models\Rahdaran;
use Illuminate\Database\QueryException;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -52,8 +53,13 @@ class RahdaranController extends Controller
public function destroy(Rahdaran $rahdaran): JsonResponse public function destroy(Rahdaran $rahdaran): JsonResponse
{ {
$rahdaran->delete(); try {
return $this->successResponse(); $rahdaran->delete();
return $this->successResponse();
}
catch (QueryException $exception) {
return $this->errorResponse('امکان حذف وجود ندارد');
}
} }
public function list(): JsonResponse public function list(): JsonResponse

View File

@@ -52,6 +52,9 @@ class StoreRequest extends FormRequest
'overview_files_3' => 'file|mimes:jpg,jpeg,png,pdf|max:51200', 'overview_files_3' => 'file|mimes:jpg,jpeg,png,pdf|max:51200',
'overview_files_4' => 'file|mimes:jpg,jpeg,png,pdf|max:51200', 'overview_files_4' => 'file|mimes:jpg,jpeg,png,pdf|max:51200',
'overview_files_5' => 'file|mimes:jpg,jpeg,png,pdf|max:51200', 'overview_files_5' => 'file|mimes:jpg,jpeg,png,pdf|max:51200',
'area' => 'required|array',
'area.type' => 'required|string',
'area.coordinates' => 'required|array',
]; ];
} }
} }

View File

@@ -2,6 +2,7 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Relations\MorphMany;
@@ -80,4 +81,11 @@ class RahdariPoint extends Model
{ {
return $this->hasMany('App\Models\RahdariPointHistory', 'point_id'); return $this->hasMany('App\Models\RahdariPointHistory', 'point_id');
} }
protected function area(): Attribute
{
return Attribute::make(
get: fn($value) => json_decode($value)
);
}
} }

View File

@@ -14,7 +14,6 @@ return new class extends Migration
Schema::table('accidents', function (Blueprint $table) { Schema::table('accidents', function (Blueprint $table) {
$table->unsignedBigInteger('driver_share_amount')->nullable(); $table->unsignedBigInteger('driver_share_amount')->nullable();
$table->unsignedBigInteger('driver_rate')->nullable(); $table->unsignedBigInteger('driver_rate')->nullable();
}); });
} }
@@ -24,7 +23,7 @@ return new class extends Migration
public function down(): void public function down(): void
{ {
Schema::table('accidents', function (Blueprint $table) { Schema::table('accidents', function (Blueprint $table) {
$table->dropColumn('driver_share_amount', 'driver_rate'); $table->dropColumn(['driver_share_amount', 'driver_rate']);
}); });
} }
}; };

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('rahdari_points', function (Blueprint $table) {
$table->json('area')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('rahdari_points', function (Blueprint $table) {
$table->dropColumn('area');
});
}
};