'integer', 'flight_time' => 'integer', 'balance' => 'double', 'state' => 'integer', 'status' => 'integer', ]; public static $rules = [ 'name' => 'required', 'email' => 'required|email|unique:users,email', ]; /** * @return string */ public function getPilotIdAttribute() { $length = setting('pilots.id_length'); return $this->airline->icao . str_pad($this->id, $length, '0', STR_PAD_LEFT); } /** * @return string */ public function getIdentAttribute() { return $this->getPilotIdAttribute(); } /** * @return string */ public function getGravatarAttribute() { $size = 80; $default = 'https://en.gravatar.com/userimage/12856995/7c7c1da6387853fea65ff74983055386.png'; return 'https://www.gravatar.com/avatar/' . md5(strtolower(trim($this->email))) . '?d=' . urlencode($default ) . '&s=' . $size; } /** * Foreign Keys */ public function airline() { return $this->belongsTo('App\Models\Airline', 'airline_id'); } public function home_airport() { return $this->belongsTo('App\Models\Airport', 'home_airport_id'); } public function current_airport() { return $this->belongsTo('App\Models\Airport', 'curr_airport_id'); } public function last_pirep() { return $this->belongsTo('App\Models\Pirep', 'last_pirep_id'); } public function bids() { return $this->hasMany('App\Models\UserBid', 'user_id'); } public function pireps() { return $this->hasMany('App\Models\Pirep', 'user_id'); } public function rank() { return $this->belongsTo('App\Models\Rank', 'rank_id'); } }