mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-08-01 08:16:55 -04:00
50 lines
1.5 KiB
PHP
50 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace Modules\JobPortal\Entities;
|
|
|
|
use Modules\JobPortal\Entities\BaseModel;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
|
|
class Attributes extends BaseModel
|
|
{
|
|
use HasFactory;
|
|
|
|
protected $table = 'jp_attrs';
|
|
protected $fillable = ['name','hide_in_single','hide_in_filter_search','position'];
|
|
protected $slugField = 'slug';
|
|
protected $slugFromField = 'name';
|
|
|
|
public function terms()
|
|
{
|
|
return $this->hasMany(Terms::class, 'attr_id', 'id')->with(['translations']);
|
|
}
|
|
|
|
public function fill(array $attributes)
|
|
{
|
|
if(!empty($attributes)){
|
|
foreach ( $this->fillable as $item ){
|
|
$attributes[$item] = $attributes[$item] ?? null;
|
|
}
|
|
}
|
|
return parent::fill($attributes); // TODO: Change the autogenerated stub
|
|
}
|
|
|
|
public static function getAllAttributesForApi($service_type){
|
|
$data = [];
|
|
$attributes = Attributes::selectRaw("id,name,slug,service")->where('service', $service_type)->get();
|
|
foreach ($attributes as $item){
|
|
$translation = $item->translateOrOrigin(app()->getLocale());
|
|
$list_terms = $item->terms;
|
|
$data[] = [
|
|
'id' => $item->id,
|
|
'name' => $translation->name,
|
|
'slug' => $item->slug,
|
|
'terms' => $list_terms->map(function ($term) {
|
|
return $term->dataForApi();
|
|
})
|
|
];
|
|
}
|
|
return $data;
|
|
}
|
|
}
|