diff --git a/app/Console/Commands/ImportHostingCommand.php b/app/Console/Commands/ImportHostingCommand.php index d692622..ee8caa8 100644 --- a/app/Console/Commands/ImportHostingCommand.php +++ b/app/Console/Commands/ImportHostingCommand.php @@ -11,6 +11,7 @@ use App\Models\HostingNode; use App\Models\HostingOrder; use App\Models\HostingPlanChange; use App\Models\HostingProduct; +use App\Models\RcServiceOrder; use App\Models\User; use Illuminate\Console\Command; use Illuminate\Support\Facades\DB; @@ -82,6 +83,9 @@ class ImportHostingCommand extends Command foreach ($payload['hosting_orders'] ?? [] as $row) { $this->importLegacyOrder($row, $commit); } + foreach ($payload['rc_service_orders'] ?? [] as $row) { + $this->importRcServiceOrder($row, $commit); + } foreach ($payload['hosting_account_members'] ?? [] as $row) { $this->importMember($row, $commit); } @@ -224,6 +228,24 @@ class ImportHostingCommand extends Command } } + /** @param array $row */ + private function importRcServiceOrder(array $row, bool $commit): void + { + $platformId = (int) ($row['id'] ?? 0); + $owner = $this->resolveUser((string) ($row['owner_public_id'] ?? '')); + if (! $owner) { + return; + } + + unset($row['id'], $row['owner_public_id'], $row['owner_email']); + $row['user_id'] = $owner->id; + $row['platform_id'] = $platformId; + + if ($commit) { + RcServiceOrder::updateOrCreate(['platform_id' => $platformId], $row); + } + } + /** @param array $row */ private function importMember(array $row, bool $commit): void { diff --git a/app/Http/Controllers/Hosting/HostingController.php b/app/Http/Controllers/Hosting/HostingController.php index 16c55c3..ef64a0d 100644 --- a/app/Http/Controllers/Hosting/HostingController.php +++ b/app/Http/Controllers/Hosting/HostingController.php @@ -207,7 +207,7 @@ class HostingController extends Controller if ($hostingOrder->rc_order_id && $hosting->isConfigured()) { $result = $hosting->deleteOrder($hostingOrder->rc_order_id); if (! $result['success']) { - return redirect()->route('hosting.show', $hostingOrder) + return redirect()->route('hosting.legacy.show', $hostingOrder) ->with('error', $result['message'] ?? 'Could not cancel hosting at this time.'); } } diff --git a/app/Models/HostingOrder.php b/app/Models/HostingOrder.php index 60f863f..807986a 100644 --- a/app/Models/HostingOrder.php +++ b/app/Models/HostingOrder.php @@ -24,6 +24,7 @@ class HostingOrder extends Model public const TYPE_RESELLER = 'reseller'; protected $fillable = [ + 'platform_id', 'user_id', 'domain_id', 'domain_name', @@ -40,6 +41,7 @@ class HostingOrder extends Model 'expires_at', 'provisioned_at', 'meta', + 'is_legacy_rc', ]; protected $casts = [ diff --git a/app/Models/RcServiceOrder.php b/app/Models/RcServiceOrder.php index 94ce352..1d11890 100644 --- a/app/Models/RcServiceOrder.php +++ b/app/Models/RcServiceOrder.php @@ -41,6 +41,7 @@ class RcServiceOrder extends Model public const FULFILLMENT_FAILED = 'failed'; protected $fillable = [ + 'platform_id', 'user_id', 'category', 'order_type', diff --git a/database/migrations/2026_06_06_220000_add_platform_id_to_rc_service_orders_table.php b/database/migrations/2026_06_06_220000_add_platform_id_to_rc_service_orders_table.php new file mode 100644 index 0000000..5e85311 --- /dev/null +++ b/database/migrations/2026_06_06_220000_add_platform_id_to_rc_service_orders_table.php @@ -0,0 +1,26 @@ +unsignedBigInteger('platform_id')->nullable()->unique()->after('id'); + }); + } + } + + public function down(): void + { + if (Schema::hasTable('rc_service_orders') && Schema::hasColumn('rc_service_orders', 'platform_id')) { + Schema::table('rc_service_orders', function (Blueprint $table): void { + $table->dropColumn('platform_id'); + }); + } + } +}; diff --git a/resources/views/hosting/type.blade.php b/resources/views/hosting/type.blade.php index 4766915..0dfc220 100644 --- a/resources/views/hosting/type.blade.php +++ b/resources/views/hosting/type.blade.php @@ -241,7 +241,7 @@ {{ $order->expires_at?->format('M j, Y') ?? '—' }} - + Manage