2019-06-07 06:54:27 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Models\Base;
|
|
|
|
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
|
2019-06-29 00:14:12 +00:00
|
|
|
use App\Models\Service;
|
|
|
|
|
2019-06-07 06:54:27 +00:00
|
|
|
abstract class ServiceType extends Model
|
|
|
|
{
|
|
|
|
public $timestamps = FALSE;
|
|
|
|
public $dateFormat = 'U';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @NOTE: The service_id column could be discarded, if the id column=service_id
|
|
|
|
* @return \Illuminate\Database\Eloquent\Relations\MorphOne
|
|
|
|
*/
|
|
|
|
public function service()
|
|
|
|
{
|
2020-02-19 12:37:45 +00:00
|
|
|
return $this->morphOne(Service::class,'type','model','id','service_id');
|
2019-06-07 06:54:27 +00:00
|
|
|
}
|
2019-06-29 00:14:12 +00:00
|
|
|
|
|
|
|
/** SCOPES */
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Search for a record
|
|
|
|
*
|
|
|
|
* @param $query
|
|
|
|
* @param string $term
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public function scopeSearch($query,string $term)
|
|
|
|
{
|
|
|
|
return $query
|
|
|
|
->with(['service'])
|
|
|
|
->join('ab_service','ab_service.id','=',$this->getTable().'.service_id')
|
|
|
|
->Where('ab_service.id','like','%'.$term.'%');
|
|
|
|
}
|
|
|
|
|
|
|
|
/** ATTRIBUTES **/
|
|
|
|
|
|
|
|
public function getTypeAttribute()
|
|
|
|
{
|
|
|
|
return strtolower((new \ReflectionClass($this))->getShortName());
|
|
|
|
}
|
2019-06-07 06:54:27 +00:00
|
|
|
}
|