55 lines
1.2 KiB
PHP
55 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Enums\DeviceType;
|
|
use App\Enums\DeviceStatus;
|
|
use EloquentFilter\Filterable;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
|
|
class Device extends Model
|
|
{
|
|
use HasFactory, Filterable, HasDateTimeFormatter;
|
|
|
|
protected $attributes = [
|
|
'status' => DeviceStatus::Offline,
|
|
];
|
|
|
|
protected $casts = [
|
|
'type' => DeviceType::class,
|
|
'status' => DeviceStatus::class,
|
|
'extends' => 'array',
|
|
];
|
|
|
|
protected $fillable = [
|
|
'agricultural_base_id',
|
|
'sn',
|
|
'name',
|
|
'model',
|
|
'monitoring_point',
|
|
'type',
|
|
'status',
|
|
'extends',
|
|
'created_by',
|
|
'updated_by',
|
|
];
|
|
|
|
public function base()
|
|
{
|
|
return $this->belongsTo(AgriculturalBase::class, 'agricultural_base_id');
|
|
}
|
|
|
|
public function createdBy(): BelongsTo
|
|
{
|
|
return $this->belongsTo(AdminUser::class, 'created_by');
|
|
}
|
|
|
|
public function updatedBy(): BelongsTo
|
|
{
|
|
return $this->belongsTo(AdminUser::class, 'updated_by');
|
|
}
|
|
}
|