<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Modules\Faq\Entities\Faq;

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','sorting','brochure','recruiter_details','university_icon',
    ];



    protected $appends = ['logo_url','university_icon_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 getUniversityIconUrlAttribute()
    {
        if (!$this->university_icon) {
            return asset('backend/image/default.png');
        }

        return asset($this->university_icon);
    }

    

    // 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 = [];
    if(!empty($images)){
        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 cities()
    {
        return $this->belongsTo(City::class,'city_id');
    }
    public function review()
    {
        return $this->hasMany(Review::class, 'page_id', 'id')->where('category_id', 2);
    }
    

    
    public function faq()
    {
        return $this->hasMany(\Modules\Faq\Entities\Faq::class,'page_id','id')->orderBy('updated_at', 'desc');;
    }
    public function courses()
    {
        return $this->hasMany(Course::class,'university_id');
    }
}
