设备模型

dev
Jing Li 2022-10-14 16:57:08 +08:00
parent b1d17622ff
commit a5ba159e5b
4 changed files with 109 additions and 0 deletions

View File

@ -0,0 +1,11 @@
<?php
namespace App\Enums;
enum DeviceStatus: int
{
case Disabled = 0; // 禁用
case Online = 1; // 在线
case Offline = 2; // 离线
case Broken = 3; // 故障
}

View File

@ -0,0 +1,11 @@
<?php
namespace App\Enums;
enum DeviceType: int
{
case Monitor = 1; // 监控设备
case Soil = 2; // 土壤设备
case WaterQuality = 3; // 水质设备
case Meteorological = 4; // 气象设备
}

View File

@ -0,0 +1,46 @@
<?php
namespace App\Models;
use App\Enums\DeviceStatus;
use App\Enums\DeviceType;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Device extends Model
{
use HasFactory;
protected $attributes = [
'status' => DeviceStatus::Offline,
];
protected $casts = [
'type' => DeviceType::class,
'status' => DeviceStatus::class,
];
protected $fillable = [
'agricultural_base_id',
'sn',
'name',
'model',
'monitoring_point',
'type',
'status',
'extends',
'created_by',
'updated_by',
];
public function createdBy(): BelongsTo
{
return $this->belongsTo(AdminUser::class, 'created_by');
}
public function updatedBy(): BelongsTo
{
return $this->belongsTo(AdminUser::class, 'updated_by');
}
}

View File

@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('devices', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('agricultural_base_id')->comment('农业基地ID');
$table->string('sn')->comment('序列号');
$table->string('name')->comment('名称');
$table->string('model')->comment('型号');
$table->string('monitoring_point')->nullable()->comment('监控点');
$table->tinyInteger('type')->comment('类型: 1 监控设备, 2 土壤设备, 3 水质设备, 4 气象设备');
$table->tinyInteger('status')->default(2)->comment('状态: 0 禁用, 1 在线, 2 离线, 3 故障');
$table->json('extends')->nullable()->comment('扩展信息');
$table->unsignedBigInteger('created_by')->comment('创建人ID');
$table->unsignedBigInteger('updated_by')->comment('修改人ID');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('devices');
}
};