<?php declare(strict_types=1);
namespace openvk\Web\Models\Entities\Traits;
use openvk\Web\Models\Repositories\Audios;
use Chandler\Database\DatabaseConnection;

trait TAudioStatuses 
{
    function isBroadcastEnabled(): bool
    {
        if($this->getRealId() < 0) return true;
        return (bool) $this->getRecord()->audio_broadcast_enabled;
    }

    function getCurrentAudioStatus()
    {
        if(!$this->isBroadcastEnabled()) return NULL;

        $audioId = $this->getRecord()->last_played_track;

        if(!$audioId) return NULL;
        $audio = (new Audios)->get($audioId);

        if(!$audio || $audio->isDeleted())
            return NULL;

        $listensTable = DatabaseConnection::i()->getContext()->table("audio_listens");
        $lastListen   = $listensTable->where([
            "entity" => $this->getRealId(),
            "audio"  => $audio->getId(),
            "time >"   => (time() - $audio->getLength()) - 10,
        ])->fetch();

        if($lastListen)
            return $audio;

        return NULL;
    }
}