File: /var/www/limestate-admin/database/migrations/2024_07_10_153000_fill_floors_in_buildings.php
<?php
use App\Collections\BuildingCollection;
use App\Models\Building;
use Illuminate\Database\Migrations\Migration;
return new class extends Migration {
public function up(): void
{
/** @var BuildingCollection $buildingsWithFloorsInfo */
$buildingsWithFloorsInfo = Building::query()->whereNotNull('floors_info')->where('floors_info', '!=', '')->get();
foreach ($buildingsWithFloorsInfo as $building) {
$floorsInfo = explode('-', $building->floors_info);
$floorsInfo = array_filter($floorsInfo, fn($floorsInfoItem) => ctype_digit($floorsInfoItem));
if (empty($floorsInfo)) {
continue;
}
$building->update(['floors' => max($floorsInfo)]);
}
}
public function down(): void
{
}
};