<?php

namespace App\Models\GenericBackoffice;

use App\Libs\Database\Eloquent\ContentTypeModel;
use App\Models\GenericBackoffice\Traits\LanguageSupportTrait;
use App\Models\MediaItem;

class Entry extends ContentTypeModel
{
    use LanguageSupportTrait;

    protected $hidden = ['languages', "websites"];
    protected $with = ['languages', "websites"];

    protected $dates = []; // dates
    protected $spatialFields = []; // Locations lat & longs

    protected $casts = [];

    public function blocks()
    {
        return $this->belongsToMany(\App\Models\Block::class)->withPivot('position')->withTimestamps();
    }

    public function metaImage()
    {
        return $this->belongsTo(MediaItem::class);
    }

    public function image()
    {
        return $this->belongsTo(MediaItem::class);
    }

    public function bottomImage()
    {
        return $this->belongsTo(MediaItem::class);
    }

    public function partners()
    {
        return $this->belongsToMany(\App\Models\Partner::class)->withPivot('position')->withTimestamps();
    }

    public function mediaVideos()
    {
        return $this->belongsToMany(\App\Models\MediaVideo::class)->withPivot('position')->withTimestamps();
    }

    public function products()
    {
        return $this->belongsToMany(\App\Models\Product::class)->withPivot('position')->withTimestamps();
    }

    public function miniDocumentaries()
    {
        return $this->belongsToMany(\App\Models\MiniDocumentary::class)->withPivot('position')->withTimestamps();
    }

    public function videoThumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'video_thumbnail_id');
    }

    public function docsThumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'docs_thumbnail_id');
    }

    public function webseriesThumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'webseries_thumbnail_id');
    }

    public function link1Thumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'link_1_thumbnail_id');
    }

    public function link2Thumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'link_2_thumbnail_id');
    }

    public function link3Thumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'link_3_thumbnail_id');
    }

    public function link4Thumbnail()
    {
        return $this->belongsTo(MediaItem::class, 'link_4_thumbnail_id');
    }
}
