lots of progress

This commit is contained in:
Doar Mihai
2026-01-17 13:46:20 +02:00
parent ab5d3cae98
commit 030a105992
77 changed files with 8507 additions and 20 deletions
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class BrokenLink extends Model
{
const UPDATED_AT = null;
protected $fillable = [
'site_id',
'url',
'status_code',
'last_checked_at',
];
protected $casts = [
'last_checked_at' => 'datetime',
];
public function site(): BelongsTo
{
return $this->belongsTo(Site::class);
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Notification extends Model
{
const UPDATED_AT = null;
protected $fillable = [
'user_id',
'type',
'message',
'is_read',
];
protected $casts = [
'is_read' => 'boolean',
];
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Site extends Model
{
protected $fillable = [
'user_id',
'url',
'name',
'monitoring_enabled',
];
protected $casts = [
'monitoring_enabled' => 'boolean',
];
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function uptimeChecks(): HasMany
{
return $this->hasMany(UptimeCheck::class);
}
public function sslCertificates(): HasMany
{
return $this->hasMany(SslCertificate::class);
}
public function brokenLinks(): HasMany
{
return $this->hasMany(BrokenLink::class);
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class SslCertificate extends Model
{
const UPDATED_AT = null;
protected $fillable = [
'site_id',
'issuer',
'expires_at',
'checked_at',
];
protected $casts = [
'expires_at' => 'datetime',
'checked_at' => 'datetime',
];
public function site(): BelongsTo
{
return $this->belongsTo(Site::class);
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class UptimeCheck extends Model
{
const UPDATED_AT = null;
protected $fillable = [
'site_id',
'status_code',
'response_time_ms',
'checked_at',
];
protected $casts = [
'checked_at' => 'datetime',
];
public function site(): BelongsTo
{
return $this->belongsTo(Site::class);
}
}
+13
View File
@@ -4,6 +4,7 @@ namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
@@ -21,6 +22,7 @@ class User extends Authenticatable
'name',
'email',
'password',
'notification_preferences',
];
/**
@@ -43,6 +45,17 @@ class User extends Authenticatable
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'notification_preferences' => 'array',
];
}
public function sites(): HasMany
{
return $this->hasMany(Site::class);
}
public function notifications(): HasMany
{
return $this->hasMany(Notification::class);
}
}