<?php declare(strict_types=1);
namespace openvk\Web\Models\Entities;
use openvk\Web\Models\Repositories\Videos;

class VideoAlbum extends MediaCollection
{
    const SPECIAL_ADDED    = 16;
    const SPECIAL_UPLOADED = 32;
    
    protected $tableName       = "video_playlists";
    protected $relTableName    = "vp_relations";
    protected $entityTableName = "videos";
    protected $entityClassName = 'openvk\Web\Models\Entities\Video';
    
    protected $specialNames = [
        16 => "_added_album",
        32 => "_uploaded_album",
    ];
    
    function getCoverURL(): ?string
    {
        $cover = $this->getCoverVideo();
        if(!$cover)
            return "/assets/packages/static/openvk/img/camera_200.png";
        
        return $cover->getThumbnailURL();
    }
    
    function getCoverVideo(): ?Photo
    {
        $cover = $this->getRecord()->cover_video;
        if(!$cover) {
            $vids = iterator_to_array($this->fetch(1, 1));
            $vid  = $vids[0] ?? NULL;
            if(!$vid || $vid->isDeleted())
                return NULL;
            else
                return $vid;
        }
        
        return (new Videos)->get($cover);
    }
}