<?php
 namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; class Media extends Model { use HasFactory; protected $table = 'media'; protected $fillable = [ 'path', 'original_name', 'mime_type', 'size_bytes', 'width_px', 'height_px', 'alt_text', 'brand_id', 'uploaded_by_admin_id', ]; protected $casts = [ 'size_bytes' => 'integer', 'width_px' => 'integer', 'height_px' => 'integer', ]; public function brand(): BelongsTo { return $this->belongsTo(Brand::class); } public function uploader(): BelongsTo { return $this->belongsTo(Admin::class, 'uploaded_by_admin_id'); } public function usages(): HasMany { return $this->hasMany(MediaUsage::class); } public function getUrlAttribute(): string { return asset('storage/' . $this->path); } public function isImage(): bool { return str_starts_with($this->mime_type, 'image/'); } } 