Move the model callbacks into Observables; reduce caching since it held balances incorrectly

This commit is contained in:
Nabeel Shahzad
2018-03-18 20:37:35 -05:00
parent 6b002f24a8
commit 36ea12e135
25 changed files with 336 additions and 266 deletions

View File

@@ -3,17 +3,18 @@
namespace App\Models;
use App\Models\Traits\ExpensableTrait;
use Illuminate\Notifications\Notifiable;
/**
* Class Airport
* @property string id
* @property string iata
* @property string icao
* @property float ground_handling_cost
* @package App\Models
*/
class Airport extends BaseModel
{
use ExpensableTrait;
use Notifiable;
public $table = 'airports';
public $timestamps = false;
@@ -59,32 +60,6 @@ class Airport extends BaseModel
'ground_handling_cost' => 'nullable|numeric',
];
/**
* Callbacks
*/
public static function boot()
{
parent::boot();
static::creating(function ($model) {
if(filled($model->iata)) {
$model->iata = strtoupper(trim($model->iata));
}
$model->icao = strtoupper(trim($model->icao));
$model->id = $model->icao;
});
static::updating(function($model) {
if (filled($model->iata)) {
$model->iata = strtoupper(trim($model->iata));
}
$model->icao = strtoupper(trim($model->icao));
$model->id = $model->icao;
});
}
/**
* @param $icao
*/
@@ -98,13 +73,12 @@ class Airport extends BaseModel
/**
* @param $iata
*/
public function setIataAttribute($iata)
public function setIataAttribute($iata): void
{
$iata = strtoupper($iata);
$this->attributes['iata'] = $iata;
}
/**
* Return full name like:
* KJFK - John F Kennedy
@@ -121,14 +95,14 @@ class Airport extends BaseModel
*/
public function getTzAttribute(): string
{
return $this->timezone;
return $this->attributes['timezone'];
}
/**
* Shorthand for setting the timezone
* @param $value
*/
public function setTzAttribute($value)
public function setTzAttribute($value): void
{
$this->attributes['timezone'] = $value;
}