mirror of
https://github.com/openclassify/openclassify.git
synced 2026-04-14 11:12:09 -05:00
63 lines
1.6 KiB
PHP
63 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Modules\Location\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Spatie\Activitylog\LogOptions;
|
|
use Spatie\Activitylog\Traits\LogsActivity;
|
|
|
|
class Country extends Model
|
|
{
|
|
use LogsActivity;
|
|
|
|
protected $fillable = ['name', 'code', 'phone_code', 'flag', 'is_active'];
|
|
|
|
protected $casts = ['is_active' => 'boolean'];
|
|
|
|
public function scopeActive(Builder $query): Builder
|
|
{
|
|
return $query->where('is_active', true);
|
|
}
|
|
|
|
public function getActivitylogOptions(): LogOptions
|
|
{
|
|
return LogOptions::defaults()
|
|
->logFillable()
|
|
->logOnlyDirty()
|
|
->dontSubmitEmptyLogs();
|
|
}
|
|
|
|
public function cities()
|
|
{
|
|
return $this->hasMany(City::class);
|
|
}
|
|
|
|
public static function idNameOptions(bool $onlyActive = false): array
|
|
{
|
|
return static::query()
|
|
->when($onlyActive, fn (Builder $query): Builder => $query->active())
|
|
->orderBy('name')
|
|
->pluck('name', 'id')
|
|
->all();
|
|
}
|
|
|
|
public static function codeOptions(bool $onlyActive = false): array
|
|
{
|
|
return static::query()
|
|
->when($onlyActive, fn (Builder $query): Builder => $query->active())
|
|
->orderBy('code')
|
|
->pluck('code', 'code')
|
|
->all();
|
|
}
|
|
|
|
public static function nameOptions(bool $onlyActive = false): array
|
|
{
|
|
return static::query()
|
|
->when($onlyActive, fn (Builder $query): Builder => $query->active())
|
|
->orderBy('name')
|
|
->pluck('name', 'name')
|
|
->all();
|
|
}
|
|
}
|