From 2e0b49df45e838756584544183178e7883c2624c Mon Sep 17 00:00:00 2001 From: joddyabott Date: Mon, 14 Apr 2025 15:40:10 +0330 Subject: [PATCH] create new column for database and improve the controller --- .../RoadMaintenanceStationController.php | 78 +++++++++++-------- .../RoadMaintenanceStation/UpdateRequest.php | 3 + ...ulums_to_rahdari_point_histories_table.php | 40 ++++++++++ 3 files changed, 87 insertions(+), 34 deletions(-) create mode 100644 database/migrations/2025_04_14_150741_add_culums_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 17ae8698..3dd07a5a 100644 --- a/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php +++ b/app/Http/Controllers/V3/Dashboard/RoadMaintenanceStationController.php @@ -13,11 +13,8 @@ use App\Models\City; use App\Models\Province; use App\Models\RahdariPoint; use App\Models\RahdariPointHistory; -use Hekmatinasser\Verta\Facades\Verta; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; -use Illuminate\Support\Facades\Auth; -use Illuminate\Support\Facades\DB; class RoadMaintenanceStationController extends Controller @@ -83,15 +80,15 @@ class RoadMaintenanceStationController extends Controller */ public function store(StoreRequest $request): JsonResponse { - $provinceName = Province::query()->find($request->province_id)->name_fa; + $province = Province::query()->find($request->province_id); - $cityName = City::query()->find($request->city_id)->name_fa; + $city = City::query()->find($request->city_id); $station = RahdariPoint::query()->create([ - 'province_id' => $request->province_id, - 'province_name' => $provinceName, - 'city_id' => $request->city_id, - 'city_name' => $cityName, + 'province_id' => $province->id, + 'province_name' => $province->name_fa, + 'city_id' => $city->id, + 'city_name' => $city->name_fa, 'name' => $request->name, 'status' => $request->status, 'type' => $request->type, @@ -144,45 +141,59 @@ class RoadMaintenanceStationController extends Controller */ public function update(UpdateRequest $request, RahdariPoint $rahdariPoint): JsonResponse { + $province = Province::query()->find($request->province_id); + + $city = City::query()->find($request->city_id); + RahdariPointHistory::query()->create([ 'user_id' => $request->user()->id, 'point_id' => $rahdariPoint->id, + 'previous_province_id' => $province->id, + 'previous_province_name' => $province->name_fa, + 'previous_city_id' => $city->id, + 'previous_city_name' => $city->name_fa, + 'previous_name' => $rahdariPoint->name, 'previous_status' => $rahdariPoint->status, 'previous_type' => $rahdariPoint->type, - 'previous_team_num' => $rahdariPoint->team_num, - 'previous_staff_num' => $rahdariPoint->staff_num, + 'previous_team_num' => $rahdariPoint->team_num, + 'previous_staff_num' => $rahdariPoint->staff_num, 'previous_phone' => $rahdariPoint->phone, - 'previous_responsible_name' => $rahdariPoint->responsible_name, - 'previous_responsible_mobile' => $rahdariPoint->responsible_mobile, - 'previous_successor_name' => $rahdariPoint->successor_name, - 'previous_successor_mobile' => $rahdariPoint->successor_mobile, - 'previous_machines_light' => $rahdariPoint->machines_light, - 'previous_machines_sheavy' => $rahdariPoint->machines_sheavy, - 'previous_machines_heavy' => $rahdariPoint->machines_heavy, + 'previous_responsible_name' => $rahdariPoint->responsible_name, + 'previous_responsible_mobile' => $rahdariPoint->responsible_mobile, + 'previous_successor_name' => $rahdariPoint->successor_name, + 'previous_successor_mobile' => $rahdariPoint->successor_mobile, + 'previous_machines_light' => $rahdariPoint->machines_light, + 'previous_machines_sheavy' => $rahdariPoint->machines_sheavy, + 'previous_machines_heavy' => $rahdariPoint->machines_heavy, 'previous_lat' => $rahdariPoint->lat, 'previous_lng' => $rahdariPoint->lng, 'new_files' => json_encode($rahdariPoint->files), ]); $rahdariPoint->update([ - 'status' => $request->input('status', $rahdariPoint->status), - 'type' => $request->input('type', $rahdariPoint->type), + 'province_id' => $province->id, + 'province_name' => $province->name_fa, + 'city_id' => $city->id, + 'city_name' => $city->name_fa, + 'name' => $request->input('name'), + 'status' => $request->input('status'), + 'type' => $request->input('type',), 'type_fa' => RoadMaintenanceStationTypes::name($request->type) ?? $rahdariPoint->type_fa, - 'team_num' => $request->input('team_num', $rahdariPoint->team_num), - 'staff_num' => $request->input('staff_num', $rahdariPoint->staff_num), - 'phone' => $request->input('phone', $rahdariPoint->phone), - 'responsible_name' => $request->input('responsible_name', $rahdariPoint->responsible_name), - 'responsible_mobile' => $request->input('responsible_mobile', $rahdariPoint->responsible_mobile), - 'successor_name' => $request->input('successor_name', $rahdariPoint->successor_name), - 'successor_mobile' => $request->input('successor_mobile', $rahdariPoint->successor_mobile), - 'machines_light' => $request->input('machines_light', $rahdariPoint->machines_light), - 'machines_sheavy' => $request->input('machines_sheavy', $rahdariPoint->machines_sheavy), - 'machines_heavy' => $request->input('machines_heavy', $rahdariPoint->machines_heavy), - 'lat' => $request->input('lat', $rahdariPoint->lat), - 'lng' => $request->input('lng', $rahdariPoint->lng), + 'team_num' => $request->input('team_num'), + 'staff_num' => $request->input('staff_num'), + 'phone' => $request->input('phone'), + 'responsible_name' => $request->input('responsible_name'), + 'responsible_mobile' => $request->input('responsible_mobile'), + 'successor_name' => $request->input('successor_name'), + 'successor_mobile' => $request->input('successor_mobile'), + 'machines_light' => $request->input('machines_light'), + 'machines_sheavy' => $request->input('machines_sheavy'), + 'machines_heavy' => $request->input('machines_heavy'), + 'lat' => $request->input('lat'), + 'lng' => $request->input('lng'), 'lat_from' => $request->lat_from, 'lng_from' => $request->lng_from, - 'geometry' => $request->geometry, + 'geometry' => $request->geometry, 'lat_to' => $request->lat_to, 'lng_to' => $request->lng_to, 'color' => $request->color, @@ -200,7 +211,6 @@ class RoadMaintenanceStationController extends Controller foreach ($uploadFields as $index => $field) { if ($request->hasFile($field)) { $existingFile = $rahdariPoint->files->get($index); - $path = FileFacade::save($request->$field, "road_stations/{$rahdariPoint->id}"); if ($existingFile) { diff --git a/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php b/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php index 892394aa..3443e3b1 100644 --- a/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php +++ b/app/Http/Requests/V3/RoadMaintenanceStation/UpdateRequest.php @@ -22,6 +22,9 @@ class UpdateRequest extends FormRequest public function rules(): array { return [ + 'province_id' => 'required|exists:provinces,id', + 'city_id' => 'required|exists:cities,id', + 'name' => 'required|string|max:255', 'status' => 'integer|in:0,1', 'type' => 'integer|in:1,2,3', 'team_num' => 'numeric', diff --git a/database/migrations/2025_04_14_150741_add_culums_to_rahdari_point_histories_table.php b/database/migrations/2025_04_14_150741_add_culums_to_rahdari_point_histories_table.php new file mode 100644 index 00000000..4743a7a3 --- /dev/null +++ b/database/migrations/2025_04_14_150741_add_culums_to_rahdari_point_histories_table.php @@ -0,0 +1,40 @@ +after('user_id', function (Blueprint $table) { + $table->unsignedSmallInteger('previous_province_id')->nullable(); + $table->string('previous_province_name')->nullable(); + $table->unsignedSmallInteger('previous_city_id')->nullable(); + $table->string('previous_city_name')->nullable(); + $table->string('previous_name')->nullable(); + }); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('rahdari_point_histories', function (Blueprint $table) { + $table->dropColumn([ + 'previous_province_id', + 'previous_province_name', + 'previous_city_id', + 'previous_city_name', + 'previous_name', + ]); + }); + } +};