| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace App\Models; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use Illuminate\Database\Eloquent\Factories\HasFactory; | 
					
						
							|  |  |  | use Illuminate\Database\Eloquent\Model; | 
					
						
							| 
									
										
										
										
											2022-05-09 15:39:03 +10:00
										 |  |  | use Illuminate\Support\Facades\Cache; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\DB; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Providers extends Model | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     use HasFactory; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     protected $fillable = ['name']; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-22 23:49:18 +10:00
										 |  |  |     protected $keyType = 'string'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  |     protected $table = 'providers'; | 
					
						
							| 
									
										
										
										
											2022-05-09 15:39:03 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public static function allProviders(): array | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return Cache::remember("providers", now()->addMonth(1), function () { | 
					
						
							| 
									
										
										
										
											2023-08-19 23:52:59 +10:00
										 |  |  |             return self::orderBy('name')->get()->toArray(); | 
					
						
							| 
									
										
										
										
											2022-05-09 15:39:03 +10:00
										 |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-05-15 21:01:02 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public static function showServicesForProvider($provider): array | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $servers = DB::table('servers as s') | 
					
						
							| 
									
										
										
										
											2023-08-18 19:33:26 +10:00
										 |  |  |             ->where('s.provider_id', $provider) | 
					
						
							| 
									
										
										
										
											2022-05-15 21:01:02 +10:00
										 |  |  |             ->get(['s.id', 's.hostname']) | 
					
						
							|  |  |  |             ->toArray(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $shared = DB::table('shared_hosting as s') | 
					
						
							| 
									
										
										
										
											2023-08-18 19:33:26 +10:00
										 |  |  |             ->where('s.provider_id', $provider) | 
					
						
							| 
									
										
										
										
											2022-05-15 21:01:02 +10:00
										 |  |  |             ->get(['s.id', 's.main_domain as main_domain_shared']) | 
					
						
							|  |  |  |             ->toArray(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $reseller = DB::table('reseller_hosting as r') | 
					
						
							| 
									
										
										
										
											2023-08-18 19:33:26 +10:00
										 |  |  |             ->where('r.provider_id', $provider) | 
					
						
							| 
									
										
										
										
											2022-05-15 21:01:02 +10:00
										 |  |  |             ->get(['r.id', 'r.main_domain as main_domain_reseller']) | 
					
						
							|  |  |  |             ->toArray(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return array_merge($servers, $shared, $reseller); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | } |