Merge pull request #12 from witelgroup/feature/Rahdarkhane

add area for rahdari points
This commit is contained in:
Amir Ghasempoor
2025-09-06 10:22:20 +03:30
committed by GitHub
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\Events\V3\Dashboard\Mission\SendDataToFMSEvent;
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\StartRequest;
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);
return $this->successResponse();

View File

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

View File

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

View File

@@ -48,8 +48,8 @@ class OperatorController extends Controller
'province_fa' => $mission->province_name,
'edare_id' => $mission->edare_shahri_id,
'edare_name' => $mission->edare_shahri_name,
'start_time' => $mission->start_date,
'end_time' => $mission->end_date,
'start_time' => $mission->start_time,
'end_time' => $mission->finish_time,
]);
$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\Traits\ApiResponse;
use App\Models\Rahdaran;
use Illuminate\Database\QueryException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -52,8 +53,13 @@ class RahdaranController extends Controller
public function destroy(Rahdaran $rahdaran): JsonResponse
{
$rahdaran->delete();
return $this->successResponse();
try {
$rahdaran->delete();
return $this->successResponse();
}
catch (QueryException $exception) {
return $this->errorResponse('امکان حذف وجود ندارد');
}
}
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_4' => '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;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
@@ -80,4 +81,11 @@ class RahdariPoint extends Model
{
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) {
$table->unsignedBigInteger('driver_share_amount')->nullable();
$table->unsignedBigInteger('driver_rate')->nullable();
});
}
@@ -24,7 +23,7 @@ return new class extends Migration
public function down(): void
{
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');
});
}
};