<?php declare(strict_types=1);
namespace openvk\Web\Models\Entities;
use openvk\Web\Util\DateTime;
use Nette\Database\Table\ActiveRow;
use openvk\Web\Models\RowModel;
use Chandler\Database\DatabaseConnection;
use openvk\Web\Models\Repositories\Users;
use Chandler\Database\DatabaseConnection as DB;
use Nette\InvalidStateException as ISE;
use Nette\Database\Table\Selection;

class Ticket extends RowModel
{
    
    protected $tableName = "tickets";

    function getId(): int
    {
        return $this->getRecord()->id;
    }
    
    function getStatus(): string
    {
        if ($this->getRecord()->type === 0) 
        {
            return 'Вопрос находится на рассмотрении.';
        } elseif ($this->getRecord()->type === 1) {
            return 'Есть ответ.';
        } elseif ($this->getRecord()->type === 2) {
            return 'Закрыто.';
        }
    }
    
    function getType(): int
    {
        return $this->getRecord()->type;
    }
    
    function getName(): string
    {
        return ovk_proc_strtr($this->getRecord()->name, 100);
    }
    
    function getContext(): string
    {
        return $this->getRecord()->text;
    }
    
    function getTime(): DateTime
    {
        return new DateTime($this->getRecord()->created);
    }
    
    function isDeleted(): bool
    {
        if ($this->getRecord()->deleted === 0) 
        {
            return false;
        } elseif ($this->getRecord()->deleted === 1) {
            return true;
        }
    }
    
    function authorId(): int
    {
        return $this->getRecord()->user_id;
    }
    
    function getUser(): user
    {
        return (new Users)->get($this->getRecord()->user_id);
    }
}