Cleanup column types and assign Time class to fields #189
This commit is contained in:
parent
fd4407a798
commit
61af5fe226
@ -28,7 +28,7 @@ $factory->define(App\Models\Flight::class, function (Faker $faker) use ($airline
|
|||||||
'route' => $faker->randomElement(['', $faker->text(5)]),
|
'route' => $faker->randomElement(['', $faker->text(5)]),
|
||||||
'dpt_time' => $faker->time(),
|
'dpt_time' => $faker->time(),
|
||||||
'arr_time' => $faker->time(),
|
'arr_time' => $faker->time(),
|
||||||
'flight_time' => $faker->randomFloat(2),
|
'flight_time' => $faker->numberBetween(60, 360),
|
||||||
'has_bid' => false,
|
'has_bid' => false,
|
||||||
'active' => true,
|
'active' => true,
|
||||||
'created_at' => $faker->dateTimeBetween('-1 week', 'now'),
|
'created_at' => $faker->dateTimeBetween('-1 week', 'now'),
|
||||||
|
@ -37,8 +37,8 @@ $factory->define(App\Models\Pirep::class, function (Faker $faker) {
|
|||||||
'level' => $faker->numberBetween(20, 400),
|
'level' => $faker->numberBetween(20, 400),
|
||||||
'distance' => $faker->randomFloat(2),
|
'distance' => $faker->randomFloat(2),
|
||||||
'planned_distance' => $faker->randomFloat(2),
|
'planned_distance' => $faker->randomFloat(2),
|
||||||
'flight_time' => $faker->randomFloat(2),
|
'flight_time' => $faker->numberBetween(60, 360),
|
||||||
'planned_flight_time' => $faker->randomFloat(2),
|
'planned_flight_time' => $faker->numberBetween(60, 360),
|
||||||
'zfw' => $faker->randomFloat(2),
|
'zfw' => $faker->randomFloat(2),
|
||||||
'block_fuel' => $faker->randomFloat(2),
|
'block_fuel' => $faker->randomFloat(2),
|
||||||
'fuel_used' => $faker->randomFloat(2),
|
'fuel_used' => $faker->randomFloat(2),
|
||||||
|
@ -28,7 +28,7 @@ class CreateFlightTables extends Migration
|
|||||||
$table->string('arr_time', 10)->nullable();
|
$table->string('arr_time', 10)->nullable();
|
||||||
$table->unsignedInteger('level')->nullable()->default(0);
|
$table->unsignedInteger('level')->nullable()->default(0);
|
||||||
$table->unsignedDecimal('distance', 19)->nullable()->default(0.0);
|
$table->unsignedDecimal('distance', 19)->nullable()->default(0.0);
|
||||||
$table->unsignedDecimal('flight_time', 19)->nullable();
|
$table->unsignedInteger('flight_time')->nullable();
|
||||||
$table->tinyInteger('flight_type')->default(FlightType::PASSENGER);
|
$table->tinyInteger('flight_type')->default(FlightType::PASSENGER);
|
||||||
$table->text('route')->nullable();
|
$table->text('route')->nullable();
|
||||||
$table->text('notes')->nullable();
|
$table->text('notes')->nullable();
|
||||||
|
@ -31,8 +31,8 @@ class CreatePirepTables extends Migration
|
|||||||
$table->unsignedInteger('level')->nullable();
|
$table->unsignedInteger('level')->nullable();
|
||||||
$table->unsignedDecimal('distance')->nullable();
|
$table->unsignedDecimal('distance')->nullable();
|
||||||
$table->unsignedDecimal('planned_distance')->nullable();
|
$table->unsignedDecimal('planned_distance')->nullable();
|
||||||
$table->unsignedDecimal('flight_time', 19)->nullable();
|
$table->unsignedInteger('flight_time')->nullable();
|
||||||
$table->unsignedDecimal('planned_flight_time', 19)->nullable();
|
$table->unsignedInteger('planned_flight_time')->nullable();
|
||||||
$table->unsignedDecimal('zfw', 19)->nullable();
|
$table->unsignedDecimal('zfw', 19)->nullable();
|
||||||
$table->unsignedDecimal('block_fuel', 19)->nullable();
|
$table->unsignedDecimal('block_fuel', 19)->nullable();
|
||||||
$table->unsignedDecimal('fuel_used', 19)->nullable();
|
$table->unsignedDecimal('fuel_used', 19)->nullable();
|
||||||
|
@ -25,6 +25,10 @@ class Pirep extends Resource
|
|||||||
$pirep['planned_distance'] = $this->planned_distance->toObject();
|
$pirep['planned_distance'] = $this->planned_distance->toObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Relationship fields
|
||||||
|
*/
|
||||||
|
|
||||||
$pirep['airline'] = new Airline($this->airline);
|
$pirep['airline'] = new Airline($this->airline);
|
||||||
$pirep['dpt_airport'] = new Airport($this->dpt_airport);
|
$pirep['dpt_airport'] = new Airport($this->dpt_airport);
|
||||||
$pirep['arr_airport'] = new Airport($this->arr_airport);
|
$pirep['arr_airport'] = new Airport($this->arr_airport);
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Support\Units\Distance;
|
use App\Support\Units\Distance;
|
||||||
|
use App\Support\Units\Time;
|
||||||
use PhpUnitsOfMeasure\Exception\NonNumericValue;
|
use PhpUnitsOfMeasure\Exception\NonNumericValue;
|
||||||
use PhpUnitsOfMeasure\Exception\NonStringUnitName;
|
use PhpUnitsOfMeasure\Exception\NonStringUnitName;
|
||||||
|
|
||||||
@ -28,6 +29,7 @@ class Flight extends BaseModel
|
|||||||
'arr_time',
|
'arr_time',
|
||||||
'level',
|
'level',
|
||||||
'distance',
|
'distance',
|
||||||
|
'flight_time',
|
||||||
'flight_type',
|
'flight_type',
|
||||||
'route',
|
'route',
|
||||||
'notes',
|
'notes',
|
||||||
@ -39,6 +41,7 @@ class Flight extends BaseModel
|
|||||||
'flight_number' => 'integer',
|
'flight_number' => 'integer',
|
||||||
'level' => 'integer',
|
'level' => 'integer',
|
||||||
'distance' => 'float',
|
'distance' => 'float',
|
||||||
|
'flight_time' => 'integer',
|
||||||
'flight_type' => 'integer',
|
'flight_type' => 'integer',
|
||||||
'has_bid' => 'boolean',
|
'has_bid' => 'boolean',
|
||||||
'active' => 'boolean',
|
'active' => 'boolean',
|
||||||
@ -108,6 +111,30 @@ class Flight extends BaseModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Time
|
||||||
|
*/
|
||||||
|
public function getFlightTimeAttribute()
|
||||||
|
{
|
||||||
|
if (!array_key_exists('flight_time', $this->attributes)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Time($this->attributes['flight_time']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $value
|
||||||
|
*/
|
||||||
|
public function setFlightTimeAttribute($value)
|
||||||
|
{
|
||||||
|
if ($value instanceof Time) {
|
||||||
|
$this->attributes['flight_time'] = $value->getMinutes();
|
||||||
|
} else {
|
||||||
|
$this->attributes['flight_time'] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Relationship
|
* Relationship
|
||||||
*/
|
*/
|
||||||
|
@ -7,6 +7,7 @@ use App\Models\Enums\PirepState;
|
|||||||
use App\Models\Traits\HashId;
|
use App\Models\Traits\HashId;
|
||||||
use App\Support\Units\Distance;
|
use App\Support\Units\Distance;
|
||||||
|
|
||||||
|
use App\Support\Units\Time;
|
||||||
use PhpUnitsOfMeasure\Exception\NonNumericValue;
|
use PhpUnitsOfMeasure\Exception\NonNumericValue;
|
||||||
use PhpUnitsOfMeasure\Exception\NonStringUnitName;
|
use PhpUnitsOfMeasure\Exception\NonStringUnitName;
|
||||||
|
|
||||||
@ -137,6 +138,30 @@ class Pirep extends BaseModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Time
|
||||||
|
*/
|
||||||
|
public function getFlightTimeAttribute()
|
||||||
|
{
|
||||||
|
if (!array_key_exists('flight_time', $this->attributes)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Time($this->attributes['flight_time']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $value
|
||||||
|
*/
|
||||||
|
public function setFlightTimeAttribute($value)
|
||||||
|
{
|
||||||
|
if($value instanceof Time) {
|
||||||
|
$this->attributes['flight_time'] = $value->getMinutes();
|
||||||
|
} else {
|
||||||
|
$this->attributes['flight_time'] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the planned_distance in a converter class
|
* Return the planned_distance in a converter class
|
||||||
* @return int|Distance
|
* @return int|Distance
|
||||||
@ -172,6 +197,30 @@ class Pirep extends BaseModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Time
|
||||||
|
*/
|
||||||
|
public function getPlannedFlightTimeAttribute()
|
||||||
|
{
|
||||||
|
if (!array_key_exists('planned_flight_time', $this->attributes)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Time($this->attributes['planned_flight_time']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $value
|
||||||
|
*/
|
||||||
|
public function setPlannedFlightTimeAttribute($value)
|
||||||
|
{
|
||||||
|
if ($value instanceof Time) {
|
||||||
|
$this->attributes['planned_flight_time'] = $value->getMinutes();
|
||||||
|
} else {
|
||||||
|
$this->attributes['planned_flight_time'] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do some cleanup on the route
|
* Do some cleanup on the route
|
||||||
* @param $route
|
* @param $route
|
||||||
|
@ -20,8 +20,10 @@ class Time implements Arrayable
|
|||||||
*/
|
*/
|
||||||
public function __construct($minutes, $hours=null)
|
public function __construct($minutes, $hours=null)
|
||||||
{
|
{
|
||||||
|
$minutes = (int) $minutes;
|
||||||
|
|
||||||
if(!empty($hours)) {
|
if(!empty($hours)) {
|
||||||
$this->hours = $hours;
|
$this->hours = (int) $hours;
|
||||||
} else {
|
} else {
|
||||||
$this->hours = floor($minutes / 60);
|
$this->hours = floor($minutes / 60);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user