<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Universities extends Model
{
    use HasFactory;
    protected $connection = 'study_data';
    protected $table = 'universities1';
    protected $fillable = ['name','country_id','meta_title','meta_description','meta_keywords','logo','images','videos','website','phone','email','address','size_of_city','population_of_city','wikipedia_url','map_link','data_source_id','status','on_campus_accommodation','off_campus_accommodation','scholarships','created','modified','url','parent_id','type','aboutCollege','short_description','aboutCollegePlacement','headerImageDesktop','headerImageMobile','admissionRequirement','ranking_data','campuses','sectionwiseData','entryCriteria','feesTable','courseWidget','sid','city_id','admission_dates',
    'students','reviews','recruiters','establishment','male_female_ratio','known_as','endowments','international_students','ug_pg_course_ratio','total_campuses add',
    ];



    protected $appends = ['logo_url','images_urls', 'images_url', 'image_desktop_url', 'image_mobile_url'];

    public function getLogoUrlAttribute()
    {
        if (!$this->logo) {
            return asset('backend/image/default.png');
        }

        return asset($this->logo);
    }

    // public function getImagesUrlAttribute()
    // {
    //     if (!$this->images) {
    //         return asset('backend/image/default.png');
    //     }

    //     return asset($this->images);
    // }

    public function getImagesUrlAttribute()
    {
        if (!$this->images) {
            return asset('backend/image/default.png');
        }

        $images = json_decode($this->images, true);

        if (isset($images[0]['mediaUrl'])) {
            return asset($images[0]['mediaUrl']);
        }

        return asset('backend/image/default.png');
    }

    // public function getImagesUrlsAttribute()
    // {
    //     if (!$this->images) {
    //         return [asset('backend/image/default.png')];
    //     }

    //     $images = json_decode($this->images, true);
    //     $imageUrls = [];

    //     foreach ($images as $image) {
    //         if (isset($image['mediaUrl'])) {
    //             $imageUrls['mediaUrl']=asset($image['mediaUrl']);
    //             $imageUrls['mediaTitle']=$image['mediaTitle'];
    //             $imageUrls['altText']=$image['altText'];
    //         }
    //     }

    //     if (empty($imageUrls)) {
    //         $imageUrls['mediaUrl'] = asset('backend/image/default.png');
    //         $imageUrls['mediaTitle']='mediaTitle';
    //         $imageUrls['altText']='altText';
    //     }

    //     return $imageUrls;
    // }

    public function getImagesUrlsAttribute()
{
    if (!$this->images) {
        return [
            [
                'mediaUrl' => asset('backend/image/default.png'),
                'mediaTitle' => 'mediaTitle',
                'altText' => 'altText'
            ]
        ];
    }

    $images = json_decode($this->images, true);
    $imageUrls = [];

    foreach ($images as $image) {
        if (isset($image['mediaUrl'])) {
            $imageUrls[] = [
                'mediaUrl' => asset($image['mediaUrl']),
                'mediaTitle' =>!empty($image['mediaTitle']) ? $image['mediaTitle'] : "_images",
                'altText' =>!empty($image['altText']) ? $image['altText'] : "_images"
            ];
        }
    }

    if (empty($imageUrls)) {
        $imageUrls[] = [
            'mediaUrl' => asset('backend/image/default.png'),
            'mediaTitle' => 'mediaTitle',
            'altText' => 'altText'
        ];
    }

    return $imageUrls;
}

    public function getImageDesktopUrlAttribute()
    {
        // return asset('backend/image/default.png');
        if (!$this->headerImageDesktop) {
            return asset('backend/image/default.png');
        }

        return asset($this->headerImageDesktop);
    }

    public function getImageMobileUrlAttribute()
    {
        if (!$this->headerImageMobile) {
            return asset('backend/image/default.png');
        }
        return asset($this->headerImageMobile);
    }

    public function countries()
    {
        return $this->belongsTo(Countries::class,'country_id');
    }
    public function faq()
    {
        return $this->hasMany(Faq::class,'university_id');
    }
    public function courses()
    {
        return $this->hasMany(Course::class,'university_id');
    }
      public $timestamps = false;
}
