Files
cssd-back/app/Item.php
T
2023-12-09 19:27:48 +03:30

57 lines
1.5 KiB
PHP

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia\HasMedia;
use App\Services\Media\HasMediaTrait;
use Spatie\MediaLibrary\Models\Media;
class Item extends Model implements HasMedia
{
use HasMediaTrait;
public $fillable = [ 'name' , 'size' , 'unique_id' , 'specific' , 'note' , 'user_id' , 'udi' , 'status' , 'repair' , 'package_id' , 'creator_id' ];
public function package()
{
return $this->belongsTo( 'App\Package' );
}
public function user()
{
return $this->belongsTo( 'App\User' );
}
public function creator()
{
return $this->belongsTo( 'App\User' , "creator_id" );
}
public function transfers()
{
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , "approved" );
}
public function transferActive()
{
return $this->morphMany( 'App\Transfer' , "transferable" )->where( "status" , "approved" )->whereNull( "to_date" );
}
public function registerMediaCollections()
{
$this->addMediaCollection( 'main_images' )
->useFallbackUrl( '/images/default_pastry.jpg' )
->useFallbackPath( public_path( '/images/default_pastry.jpg' ) );
}
public function registerMediaConversions( Media $media = null ): void
{
$this->addMediaConversion( 'thumbnail' )
->width( 480 )
->height( 640 )
->nonQueued()
->performOnCollections( 'main_images' );
}
}