Current File : /home/getxxhzo/app.genicards.com/app/Models/Nfc.php |
<?php
namespace App\Models;
use Spatie\MediaLibrary\HasMedia;
use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\InteractsWithMedia;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Nfc extends Model implements HasMedia
{
use HasFactory, InteractsWithMedia;
protected $table = 'nfcs';
const NFC_PATH = 'nfc_image';
const NFC_BACK_IMAGE = 'nfc_back_image';
public static $rules = [
'name' => 'required|string',
'price' => 'required|integer',
'description' => 'required|string',
'nfc_img' => 'required|mimes:jpg,jpeg,png',
'nfc_back_img' => 'required|mimes:jpg,jpeg,png',
];
protected $appends = ['nfc_image', 'nfc_back_image'];
protected $with = ['media'];
public function getNfcImageAttribute(): string
{
/** @var Media $media */
$media = $this->getMedia(self::NFC_PATH)->first();
if (! empty($media)) {
return $media->getFullUrl();
}
return asset('assets/img/nfc/card_default.png');
}
public function getNfcBackImageAttribute(): string
{
/** @var Media $media */
$media = $this->getMedia(self::NFC_BACK_IMAGE)->first();
if (! empty($media)) {
return $media->getFullUrl();
}
return asset('assets/img/nfc/card_default.png');
}
protected $fillable = [
'name',
'description',
'price',
'nfc_img',
'nfc_back_img',
];
public function nfcOrders()
{
return $this->hasMany(NfcOrders::class,'card_type','id');
}
}