Merge pull request #12 from witelgroup/feature/Rahdarkhane
add area for rahdari points
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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']);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user