<?php

class Publication extends ContentTypeModel implements CardableModel
{
    use LanguageSupportTrait;
    use BlocksTrait;

    protected $hidden = array('languages', "websites");
    protected $with = array("websites", "languages");

    public function document()
    {
        return $this->belongsToMany("MediaItem", "publication_media_item");
    }

    public function media()
    {
        return $this->belongsTo("MediaItem");
    }

    public function getCardFields()
    {
        $wo = $this->websites()->first();
        if ($wo->status != 'published' || $wo->lang_status != 'published') {
            return null;
        }

        $fieldsObject = new stdClass();
        $fieldsObject->subject = '';
        $fieldsObject->title = $this->title;
        $fieldsObject->excerpt = '<p>' . $this->reference_summary . '</p>';
        $fieldsObject->image = $this->media;
        $fieldsObject->image_alt = $this->title;
        $fieldsObject->cta = generateObjectLinkJson($this);
        $fieldsObject->cta2 = null;

        return $fieldsObject;
    }

    public function blocks()
    {
        return $this->belongsToMany(Block::class, 'publication_blocks');
    }
}
