59 lines
1.3 KiB
PHP
Executable File
59 lines
1.3 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Traits\HasUuid;
|
|
use DateTimeInterface;
|
|
use EloquentFilter\Filterable;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Spatie\MediaLibrary\HasMedia;
|
|
use Spatie\MediaLibrary\InteractsWithMedia;
|
|
|
|
class PackageName extends Model implements HasMedia
|
|
{
|
|
use HasUuid, Filterable, InteractsWithMedia;
|
|
|
|
protected $guarded = [];
|
|
|
|
const SOURCES = [
|
|
'unknown' => 0,
|
|
'google_play' => 1,
|
|
'cafe' => 2,
|
|
'myket' => 3,
|
|
'web' => 4,
|
|
];
|
|
|
|
public function registerMediaCollections(): void
|
|
{
|
|
$this->addMediaCollection('firebase_json')->singleFile();
|
|
}
|
|
public function getRouteKeyName()
|
|
{
|
|
return 'name';
|
|
}
|
|
public function users()
|
|
{
|
|
return $this->belongsToMany(User::class, 'user_package_name')->withPivot(['id', 'tries', 'source', 'fcm_token'])->withTimestamps();
|
|
}
|
|
|
|
public function getImageAttribute()
|
|
{
|
|
return url($this->attributes['image']);
|
|
}
|
|
|
|
protected function serializeDate(DateTimeInterface $date)
|
|
{
|
|
return $date->format('Y-m-d H:i:s');
|
|
}
|
|
|
|
public function products()
|
|
{
|
|
return $this->hasMany(Product::class);
|
|
}
|
|
|
|
public function cafeConfig()
|
|
{
|
|
return $this->belongsTo(CafeConfig::class);
|
|
}
|
|
}
|