phpvms/app/Models/Acars.php

116 lines
2.4 KiB
PHP
Raw Normal View History

<?php
namespace App\Models;
use App\Contracts\Model;
use App\Models\Traits\HashIdTrait;
use App\Support\Units\Distance;
use App\Support\Units\Fuel;
/**
2020-04-01 05:26:55 +08:00
* @property string id
2018-05-12 01:08:55 +08:00
* @property string pirep_id
* @property int type
* @property string name
2020-04-01 05:26:55 +08:00
* @property float lat
* @property float lon
* @property float altitude
2018-05-12 01:08:55 +08:00
* @property int gs
* @property int heading
* @property int order
* @property int nav_type
*/
class Acars extends Model
{
use HashIdTrait;
public $table = 'acars';
protected $keyType = 'string';
2018-01-01 04:20:52 +08:00
public $incrementing = false;
public $fillable = [
2018-12-27 23:35:40 +08:00
'id',
'pirep_id',
'type',
'nav_type',
'order',
'name',
'status',
2017-12-26 08:22:46 +08:00
'log',
'lat',
'lon',
'distance',
2017-12-26 08:22:46 +08:00
'heading',
'altitude',
'vs',
'gs',
'transponder',
'autopilot',
'fuel_flow',
'sim_time',
'created_at',
'updated_at',
];
2017-12-26 08:10:24 +08:00
public $casts = [
'type' => 'integer',
'order' => 'integer',
'nav_type' => 'integer',
'lat' => 'float',
'lon' => 'float',
'distance' => 'integer',
'heading' => 'integer',
'altitude' => 'float',
'vs' => 'float',
'gs' => 'float',
'transponder' => 'integer',
'fuel' => 'float',
'fuel_flow' => 'float',
2017-12-26 08:10:24 +08:00
];
2018-01-01 04:20:52 +08:00
public static $rules = [
'pirep_id' => 'required',
2018-01-01 04:20:52 +08:00
];
/**
* Set the distance unit, convert to our internal default unit
2018-08-27 00:40:04 +08:00
*
* @param $value
*/
public function setDistanceAttribute($value): void
{
if ($value instanceof Distance) {
$this->attributes['distance'] = $value->toUnit(
2019-05-13 02:26:44 +08:00
config('phpvms.internal_units.distance')
);
} else {
$this->attributes['distance'] = $value;
}
}
/**
* Set the amount of fuel
2018-08-27 00:40:04 +08:00
*
* @param $value
*/
public function setFuelAttribute($value)
{
if ($value instanceof Fuel) {
$this->attributes['fuel'] = $value->toUnit(
config('phpvms.internal_units.fuel')
);
} else {
$this->attributes['fuel'] = $value;
}
}
/**
* FKs
*/
public function pirep()
{
2018-01-08 23:22:12 +08:00
return $this->belongsTo(Pirep::class, 'pirep_id');
}
}