This commit is contained in:
2026-07-23 10:01:02 +07:00
commit 79f9e1d324
105 changed files with 5813 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
<?php
namespace App\Models;
use App\Enums\ContentStatus;
use App\Enums\ContentType;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
#[Fillable([
'type',
'title',
'slug',
'excerpt',
'content',
'taxonomies',
'meta_title',
'meta_description',
'meta_keywords',
'status',
'featured_image_id',
'published_at',
'created_by',
'updated_by',
'deleted_by',
])]
class Content extends Model
{
use SoftDeletes;
protected $casts = [
'type' => ContentType::class,
'status' => ContentStatus::class,
'taxonomies' => 'array',
'meta_keywords' => 'array',
'published_at' => 'datetime',
];
public function featuredImage()
{
return $this->belongsTo(Media::class, 'featured_image_id');
}
}
+34
View File
@@ -0,0 +1,34 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
#[Fillable(['path', 'filename', 'mime_type', 'extension', 'size', 'width', 'height', 'alt', 'caption', 'created_by', 'updated_by', 'deleted_by'])]
class Media extends Model
{
use SoftDeletes;
protected $casts = [
'size' => 'integer',
'width' => 'integer',
'height' => 'integer',
];
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function updatedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'updated_by');
}
public function deletedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'deleted_by');
}
}
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Models;
use App\Enums\TaxonomyType;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
#[Fillable(['type', 'name', 'slug', 'created_by', 'updated_by', 'deleted_by'])]
class Taxonomy extends Model
{
use SoftDeletes;
protected function casts(): array
{
return [
'type' => TaxonomyType::class,
];
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function updatedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'updated_by');
}
public function deletedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'deleted_by');
}
}
+46
View File
@@ -0,0 +1,46 @@
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Hidden;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
#[Fillable(['name', 'username', 'password', 'created_by', 'updated_by', 'deleted_by'])]
#[Hidden(['password', 'remember_token'])]
class User extends Authenticatable
{
/** @use HasFactory<UserFactory> */
use HasFactory, Notifiable;
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'password' => 'hashed',
];
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function updatedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'updated_by');
}
public function deletedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'deleted_by');
}
}