<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\DB; class Providers extends Model { use HasFactory; protected $fillable = ['name']; protected $keyType = 'string'; protected $table = 'providers'; public static function allProviders(): array { return Cache::remember("providers", now()->addMonth(1), function () { return DB::table('providers')->orderBy('name')->get()->toArray(); }); } public static function showServicesForProvider($provider): array { $servers = DB::table('servers as s') ->where('s.provider_id', $provider) ->get(['s.id', 's.hostname']) ->toArray(); $shared = DB::table('shared_hosting as s') ->where('s.provider_id', $provider) ->get(['s.id', 's.main_domain as main_domain_shared']) ->toArray(); $reseller = DB::table('reseller_hosting as r') ->where('r.provider_id', $provider) ->get(['r.id', 'r.main_domain as main_domain_reseller']) ->toArray(); return array_merge($servers, $shared, $reseller); } }