| 
									
										
										
										
											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-16 15:43:51 +10:00
										 |  |  | use Illuminate\Support\Facades\Cache; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\Session; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							|  |  |  | class Settings extends Model | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     use HasFactory; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     protected $table = 'settings'; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:58:25 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-31 11:31:19 +11:00
										 |  |  |     protected $fillable = ['id', 'show_versions_footer', 'show_servers_public', 'show_server_value_ip', 'show_server_value_hostname', 'show_server_value_provider', 'show_server_value_location', 'show_server_value_price', 'show_server_value_yabs', 'save_yabs_as_txt', 'default_currency', 'default_server_os', 'due_soon_amount', 'recently_added_amount', 'dark_mode', 'dashboard_currency', 'sort_on', 'favicon']; | 
					
						
							| 
									
										
										
										
											2022-05-15 01:21:51 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-31 11:56:18 +11:00
										 |  |  |     public static function getSettings(): Settings | 
					
						
							| 
									
										
										
										
											2022-05-15 01:21:51 +10:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-05-29 16:50:15 +10:00
										 |  |  |         return Cache::remember('settings', now()->addWeek(1), function () { | 
					
						
							| 
									
										
										
										
											2023-03-31 11:56:18 +11:00
										 |  |  |             return self::where('id', 1)->first(); | 
					
						
							| 
									
										
										
										
											2022-05-16 15:43:51 +10:00
										 |  |  |         }); | 
					
						
							| 
									
										
										
										
											2022-05-15 01:21:51 +10:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-05-16 15:43:51 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public static function setSettingsToSession($settings): void | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-10-04 14:35:46 +11:00
										 |  |  |         Session::put('dark_mode', $settings->dark_mode ?? 0); | 
					
						
							|  |  |  |         Session::put('timer_version_footer', $settings->show_versions_footer ?? 1); | 
					
						
							|  |  |  |         Session::put('show_servers_public', $settings->show_servers_public ?? 0); | 
					
						
							|  |  |  |         Session::put('show_server_value_ip', $settings->show_server_value_ip ?? 0); | 
					
						
							|  |  |  |         Session::put('show_server_value_hostname', $settings->show_server_value_hostname ?? 0); | 
					
						
							|  |  |  |         Session::put('show_server_value_price', $settings->show_server_value_price ?? 0); | 
					
						
							|  |  |  |         Session::put('show_server_value_yabs', $settings->show_server_value_yabs ?? 0); | 
					
						
							|  |  |  |         Session::put('show_server_value_provider', $settings->show_server_value_provider ?? 0); | 
					
						
							|  |  |  |         Session::put('show_server_value_location', $settings->show_server_value_location ?? 0); | 
					
						
							|  |  |  |         Session::put('save_yabs_as_txt', $settings->save_yabs_as_txt ?? 0); | 
					
						
							|  |  |  |         Session::put('default_currency', $settings->default_currency ?? 'USD'); | 
					
						
							|  |  |  |         Session::put('default_server_os', $settings->default_server_os ?? 1); | 
					
						
							|  |  |  |         Session::put('due_soon_amount', $settings->due_soon_amount ?? 6); | 
					
						
							|  |  |  |         Session::put('recently_added_amount', $settings->recently_added_amount ?? 6); | 
					
						
							|  |  |  |         Session::put('dashboard_currency', $settings->dashboard_currency ?? 'USD'); | 
					
						
							|  |  |  |         Session::put('sort_on', $settings->sort_on ?? 1); | 
					
						
							| 
									
										
										
										
											2023-03-31 11:31:19 +11:00
										 |  |  |         Session::put('favicon', $settings->favicon ?? 'favicon.ico'); | 
					
						
							| 
									
										
										
										
											2022-05-16 15:43:51 +10:00
										 |  |  |         Session::save(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-04 14:35:46 +11:00
										 |  |  |     public static function orderByProcess(int $value): array | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-10-31 11:17:30 +11:00
										 |  |  |         if ($value === 1) {//created_at ASC
 | 
					
						
							| 
									
										
										
										
											2022-10-04 14:35:46 +11:00
										 |  |  |             return ['created_at', 'asc']; | 
					
						
							| 
									
										
										
										
											2022-10-31 11:17:30 +11:00
										 |  |  |         } elseif ($value === 2) {//created_at DESC
 | 
					
						
							| 
									
										
										
										
											2022-10-04 14:35:46 +11:00
										 |  |  |             return ['created_at', 'desc']; | 
					
						
							|  |  |  |         } elseif ($value === 3) {//next_due_date ASC
 | 
					
						
							|  |  |  |             return ['next_due_date', 'asc']; | 
					
						
							|  |  |  |         } elseif ($value === 4) {//next_due_date DESC
 | 
					
						
							|  |  |  |             return ['next_due_date', 'desc']; | 
					
						
							|  |  |  |         } elseif ($value === 5) {//as_usd ASC
 | 
					
						
							|  |  |  |             return ['as_usd', 'asc']; | 
					
						
							|  |  |  |         } elseif ($value === 6) {//as_usd DESC
 | 
					
						
							|  |  |  |             return ['as_usd', 'desc']; | 
					
						
							|  |  |  |         } elseif ($value === 7) {//owned_since ASC
 | 
					
						
							|  |  |  |             return ['owned_since', 'asc']; | 
					
						
							|  |  |  |         } elseif ($value === 8) {//owned_since DESC
 | 
					
						
							|  |  |  |             return ['owned_since', 'desc']; | 
					
						
							|  |  |  |         } elseif ($value === 9) {//updated_at ASC
 | 
					
						
							|  |  |  |             return ['updated_at', 'asc']; | 
					
						
							|  |  |  |         } elseif ($value === 10) {//updated_at DESC
 | 
					
						
							|  |  |  |             return ['updated_at', 'desc']; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return ['created_at', 'desc']; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | } |