From 17096910c9b5be922080f7bb1a8b0da6f2c54f70 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Sun, 7 Sep 2025 08:40:23 +0330 Subject: [PATCH] add area to history --- .../RoadMaintenanceStationController.php | 2 ++ .../RoadMaintenanceStation/UpdateRequest.php | 3 ++ app/Models/RahdariPoint.php | 1 + app/Models/RahdariPointHistory.php | 11 +++++++- ...olumn_to_rahdari_point_histories_table.php | 28 +++++++++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 database/migrations/2025_09_06_145110_add_column_to_rahdari_point_histories_table.php diff --git a/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php b/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php index 8267a5c2..e1d5cbf6 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php @@ -166,6 +166,7 @@ class RoadMaintenanceStationController extends Controller 'previous_lat' => $rahdariPoint->lat, 'previous_lng' => $rahdariPoint->lng, 'new_files' => json_encode($rahdariPoint->files), + 'area' => json_encode($rahdariPoint->area), ]); $rahdariPoint->update([ @@ -196,6 +197,7 @@ class RoadMaintenanceStationController extends Controller 'lng_to' => $request->lng_to, 'color' => $request->color, 'updated_at_fa' => verta()->now()->format('Y/m/d H:i:s'), + 'area' => json_encode($request->area), ]); $uploadFields = [ diff --git a/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php b/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php index 3443e3b1..56b10987 100644 --- a/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php +++ b/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php @@ -50,6 +50,9 @@ class UpdateRequest extends FormRequest 'overview_files_3' => 'file|mimes:jpg,jpeg,png,pdf|max:5120', 'overview_files_4' => 'file|mimes:jpg,jpeg,png,pdf|max:5120', 'overview_files_5' => 'file|mimes:jpg,jpeg,png,pdf|max:5120', + 'area' => 'required|array', + 'area.type' => 'required|string', + 'area.coordinates' => 'required|array', ]; } } diff --git a/app/Models/RahdariPoint.php b/app/Models/RahdariPoint.php index ed929de7..dded767e 100644 --- a/app/Models/RahdariPoint.php +++ b/app/Models/RahdariPoint.php @@ -70,6 +70,7 @@ class RahdariPoint extends Model 'lat_to', 'lng_to', 'updated_at_fa', + 'area' ]; public function files(): MorphMany diff --git a/app/Models/RahdariPointHistory.php b/app/Models/RahdariPointHistory.php index c6d359bc..7f3abb09 100644 --- a/app/Models/RahdariPointHistory.php +++ b/app/Models/RahdariPointHistory.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Model; class RahdariPointHistory extends Model @@ -33,11 +34,19 @@ class RahdariPointHistory extends Model 'previous_lat', 'previous_lng', 'new_files', - 'point_id' + 'point_id', + 'area' ]; public function rahdariPoint() { return $this->belongsTo('App\Models\RahdariPoint'); } + + protected function area(): Attribute + { + return Attribute::make( + get: fn($value) => json_decode($value) + ); + } } diff --git a/database/migrations/2025_09_06_145110_add_column_to_rahdari_point_histories_table.php b/database/migrations/2025_09_06_145110_add_column_to_rahdari_point_histories_table.php new file mode 100644 index 00000000..62b0f087 --- /dev/null +++ b/database/migrations/2025_09_06_145110_add_column_to_rahdari_point_histories_table.php @@ -0,0 +1,28 @@ +json('area')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('rahdari_point_histories', function (Blueprint $table) { + $table->dropColumn('area'); + }); + } +};