<?php
/**
 * Created by PhpStorm.
 */

namespace TicketSupportBundle\Interfaces;


use FileManagerBundle\Entity\FolderItem;
use FormForgeBundle\Interfaces\FormForgeReasonResponseInterface;
use UserBasisBundle\Interfaces\CustomCompanyServiceInterface;
use UserBasisBundle\Interfaces\CustomUserInterface;


interface TicketItemInterface
{
    public function getId();

    public function setDefault(FormForgeReasonResponseInterface $reasonResponse);

    public function setCustomer(CustomUserInterface $userOrigin);

    public function getCustomer();

    public function setReasonResponse(FormForgeReasonResponseInterface $reasonResponse);

    public function getReasonResponse();

    public function addMessage(TicketMessageInterface $message);

    public function removeMessage(TicketMessageInterface $message);

    public function getMessages();

    public function setLocale(string $locale);

    public function getLocale();

    public function setRootFolder(FolderItem $rootFolder);

    public function getRootFolder();

    public function setCompanyServiceIntervene(CustomCompanyServiceInterface $companyService);

    public function getCompanyServiceIntervene();

    public function setInterveningUser(CustomUserInterface $usersIntervene);

    public function getInterveningUser();

    public function addTicketLog(TicketLogInterveningInterface $ticketLog);

    public function removeTicketLog(TicketLogInterveningInterface $ticketLog);

    public function getTicketLogs();

    public function setSubject(string $subject);

    public function getSubject();

    public function setResolvedDate($closeDate);

    public function getResolvedDate();

    public function setResolve(bool $resolve);

    public function isResolve();

    public function setCloseDate($closeDate);

    public function getCloseDate();

    public function setClosed(bool $resolve);

    public function isClosed();

    public function setStatus($status);

    public function getStatus();

}