From 4b4abceb1f0ca434bb4e7d82d3ef2604e582d076 Mon Sep 17 00:00:00 2001 From: Refringe Date: Sat, 12 Oct 2024 13:18:04 -0600 Subject: [PATCH] Model Type Casting --- app/Models/License.php | 13 +++++++++++++ app/Models/Mod.php | 1 + app/Models/ModDependency.php | 11 +++++++++++ app/Models/ModResolvedDependency.php | 11 +++++++++++ app/Models/ModVersion.php | 19 +++++++++++++++++++ app/Models/OAuthConnection.php | 11 +++++++++++ app/Models/SptVersion.php | 17 +++++++++++++++++ 7 files changed, 83 insertions(+) diff --git a/app/Models/License.php b/app/Models/License.php index 5c013b6..4f967ae 100644 --- a/app/Models/License.php +++ b/app/Models/License.php @@ -22,4 +22,17 @@ class License extends Model return $this->hasMany(Mod::class) ->chaperone(); } + + /** + * The attributes that should be cast to native types. + */ + protected function casts(): array + { + return [ + 'hub_id' => 'integer', + 'created_at' => 'datetime', + 'updated_at' => 'datetime', + 'deleted_at' => 'datetime', + ]; + } } diff --git a/app/Models/Mod.php b/app/Models/Mod.php index 2d0738f..b7a9877 100644 --- a/app/Models/Mod.php +++ b/app/Models/Mod.php @@ -243,6 +243,7 @@ class Mod extends Model 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', + 'published_at' => 'datetime', ]; } diff --git a/app/Models/ModDependency.php b/app/Models/ModDependency.php index 31de493..8ab885c 100644 --- a/app/Models/ModDependency.php +++ b/app/Models/ModDependency.php @@ -41,4 +41,15 @@ class ModDependency extends Model { return $this->belongsTo(Mod::class, 'dependent_mod_id'); } + + /** + * The attributes that should be cast to native types. + */ + protected function casts(): array + { + return [ + 'created_at' => 'datetime', + 'updated_at' => 'datetime', + ]; + } } diff --git a/app/Models/ModResolvedDependency.php b/app/Models/ModResolvedDependency.php index 41d47c8..4bdc02b 100644 --- a/app/Models/ModResolvedDependency.php +++ b/app/Models/ModResolvedDependency.php @@ -36,4 +36,15 @@ class ModResolvedDependency extends Model { return $this->belongsTo(ModVersion::class, 'resolved_mod_version_id'); } + + /** + * The attributes that should be cast to native types. + */ + protected function casts(): array + { + return [ + 'created_at' => 'datetime', + 'updated_at' => 'datetime', + ]; + } } diff --git a/app/Models/ModVersion.php b/app/Models/ModVersion.php index 406cfaa..100d99c 100644 --- a/app/Models/ModVersion.php +++ b/app/Models/ModVersion.php @@ -152,4 +152,23 @@ class ModVersion extends Model return $this->downloads; } + + /** + * The attributes that should be cast to native types. + */ + protected function casts(): array + { + return [ + 'hub_id' => 'integer', + 'version_major' => 'integer', + 'version_minor' => 'integer', + 'version_patch' => 'integer', + 'downloads' => 'integer', + 'disabled' => 'boolean', + 'created_at' => 'datetime', + 'updated_at' => 'datetime', + 'deleted_at' => 'datetime', + 'published_at' => 'datetime', + ]; + } } diff --git a/app/Models/OAuthConnection.php b/app/Models/OAuthConnection.php index e406fb4..4864dff 100644 --- a/app/Models/OAuthConnection.php +++ b/app/Models/OAuthConnection.php @@ -16,4 +16,15 @@ class OAuthConnection extends Model { return $this->belongsTo(User::class); } + + /** + * The attributes that should be cast to native types. + */ + protected function casts(): array + { + return [ + 'created_at' => 'datetime', + 'updated_at' => 'datetime', + ]; + } } diff --git a/app/Models/SptVersion.php b/app/Models/SptVersion.php index dfb7086..9f97a69 100644 --- a/app/Models/SptVersion.php +++ b/app/Models/SptVersion.php @@ -172,4 +172,21 @@ class SptVersion extends Model ->first(); }); } + + /** + * The attributes that should be cast to native types. + */ + protected function casts(): array + { + return [ + 'hub_id' => 'integer', + 'version_major' => 'integer', + 'version_minor' => 'integer', + 'version_patch' => 'integer', + 'mod_count' => 'integer', + 'created_at' => 'datetime', + 'updated_at' => 'datetime', + 'deleted_at' => 'datetime', + ]; + } }