sarga/packages/Webkul/Core/src/Models/Locale.php

94 lines
2.0 KiB
PHP
Executable File

<?php
namespace Webkul\Core\Models;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
use Webkul\Core\Contracts\Locale as LocaleContract;
use Webkul\Core\Database\Factories\LocaleFactory;
class Locale extends Model implements LocaleContract
{
use HasFactory;
/**
* List of all default locale images for velocity.
*
* @var array
*/
protected $defaultImage = [
'de' => 'flags/de.png',
'en' => 'flags/en.png',
'es' => 'flags/es.png',
'fr' => 'flags/fr.png',
'nl' => 'flags/nl.png',
'tr' => 'flags/tr.png',
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'code',
'name',
'direction',
];
/**
* The accessors to append to the model's array form.
*
* @var array
*/
protected $appends = ['image_url'];
/**
* Create a new factory instance for the model.
*
* @return Factory
*/
protected static function newFactory(): Factory
{
return LocaleFactory::new ();
}
/**
* Get image url for the logo image.
*
* @return string
*/
public function getImageUrlAttribute(): string
{
return $this->image_url();
}
/**
* Get image url for the logo image.
*
* @return string
*/
public function image_url(): string
{
if (! $this->locale_image) {
return $this->getDefaultImageSource();
}
return Storage::url($this->locale_image);
}
/**
* Get default image source.
*
* @return string
*/
public function getDefaultImageSource(): string
{
return isset($this->defaultImage[$this->code]) && file_exists($this->defaultImage[$this->code])
? asset($this->defaultImage[$this->code])
: '';
}
}