<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Airline extends Model
{
    protected $table = 'airlines';

    protected $fillable = [
        'IATA_code',
        'ICAO_code',
        'name',
        'internal_name',
        'country_id',
        'active',
        'logo',
    ];

    protected $casts = [
        'active' => 'boolean',
    ];


    public $timestamps = false;
    protected $appends = [
        'display_name',
    ];

    protected function displayName() : Attribute{
        return Attribute::make(
            get: function () {
                $codes = array_filter([$this->IATA_code, $this->ICAO_code]);
                $codeString = count($codes) ? ' (' . implode('/', $codes) . ')' : '';
                return "{$this->name}{$codeString}";
            }
        );
    }

    public function country(): BelongsTo
    {
        return $this->belongsTo(Country::class);
    }
}
