HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/blijegasten/blijegasten.be/app/Komma/Shop/Products/Product/ProductTranslation.php
<?php
namespace App\Komma\Shop\Products\Product;

use App\Komma\Kms\Core\AbstractTranslationModel;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
use Laravel\Scout\Searchable;
use TeamTNT\TNTSearch\Indexer\TNTIndexer;

/**
 * App\Komma\Shop\Products\Product\ProductTranslation
 *
 * @property-read \App\Komma\Globalization\Languages\Models\Language $language
 * @property-read \App\Komma\Shop\Products\Product\Product $translatable
 * @mixin \Eloquent
 * @property int $id
 * @property int $product_id
 * @property string $slug
 * @property string $name
 * @property string $subtitle
 * @property string $description
 * @property string $meta_title
 * @property string $meta_description
 * @property string $language_id
 * @property \Carbon\Carbon|null $created_at
 * @property \Carbon\Carbon|null $updated_at
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereCreatedAt($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereDescription($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereLanguageId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereMetaDescription($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereMetaTitle($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereName($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereProductId($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereSlug($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation wheresubtitle($value)
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereUpdatedAt($value)
 * @property string $subname
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereSubname($value)
 * @property string $video
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation newModelQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation newQuery()
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation query()
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Komma\Shop\Products\Product\ProductTranslation whereVideo($value)
 */
class ProductTranslation extends AbstractTranslationModel
{
    protected $fillable = ['slug', 'title', 'description', 'meta_title', 'meta_description', 'language_id', 'product_id'];

    use Searchable;
    use SoftDeletes;

    public function toSearchableArray()
    {
        return [
            'id' => $this->id,
            'name_trigram' => (new TNTIndexer)->buildTrigrams($this->name),
            'name' => $this->name,
            'description' => $this->description,
        ];
    }

    /**
     * @return array
     */
    public function getSpecs(): array
    {
        if(empty($this->specs)) return [];
        return json_decode($this->specs);
    }

    public function translatable(): BelongsTo
    {
        return $this->BelongsTo(Product::class, 'product_id');
    }
}