<?php

namespace Yajny\Models;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
use Spatie\Translatable\HasTranslations;
use Yajny\Traits\SelectTranslations;

class Region extends Model
{
    use HasTranslations, SelectTranslations;

    protected $table = 'regions';
    protected $primaryKey = 'code';
    protected $guarded = [];
    public $translatable = ['name'];
    public $incrementing = false;
    protected $appends = ['flagURL'];

    protected static function boot()
    {
        parent::boot();
        static::addGlobalScope('active', function (Builder $builder) {
            $builder->where('active', true);
        });
    }

    public function getFlagURLAttribute()
    {
        if (filter_var($this->flag, FILTER_VALIDATE_URL))
            return $this->flag;
        if ($this->flag)
            return Storage::disk()->url($this->flag);
        return null;
    }

    public function country()
    {
        return $this->hasOne(Country::class, 'code', 'default_country');
    }

    public static function getRegionsCurrency()
    {
        $data = [];
        $regions = self::with('country')->get();
        foreach ($regions as $region) {
            $data[$region->code] = $region->country->default_currency;
        }

        return $data;
    }
}
