lcly-data-admin/app/Models/Device.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');
}
}