<?php

namespace Lc\SovBundle\Model\Reminder;


use Doctrine\Common\Collections\Collection;
use Lc\SovBundle\Model\User\UserInterface;

interface ReminderInterface
{
    public function getCreatedBy(): ?UserInterface;

    public function setCreatedBy(?UserInterface $createdBy);

    public function getUpdatedBy(): ?UserInterface;

    public function setUpdatedBy(?UserInterface $updatedBy);

    public function getDevAlias(): ?string;

    public function setDevAlias(?string $devAlias);

    public function getTitle(): ?string;

    public function setTitle(string $title): ReminderInterface;

    public function getDescription(): ?string;

    public function setDescription(?string $description): ReminderInterface;

    public function getCrudAction(): ?string;

    public function setCrudAction(?string $crudAction): ReminderInterface;

    public function getCrudControllerFqcn(): ?string;

    public function setCrudControllerFqcn(?string $crudControllerFqcn): ReminderInterface;

    public function getEntityId(): ?int;

    public function setEntityId(?int $entityId): ReminderInterface;

    /**
     * @return Collection|UserInterface[]
     */
    public function getUsers(): Collection;

    public function addUser(UserInterface $user): ReminderInterface;

    public function removeUser(UserInterface $user): ReminderInterface;

    public function getDateReminder(): ?\DateTimeInterface;

    public function setDateReminder(?\DateTimeInterface $dateReminder): ReminderInterface;

    public function getDone(): ?bool;

    public function setDone(?bool $done): ReminderInterface;

    public function getCreatedAt(): ?\DateTimeInterface;

    public function setCreatedAt(\DateTimeInterface $createdAt);

    public function getUpdatedAt(): ?\DateTimeInterface;

    public function setUpdatedAt(\DateTimeInterface $updatedAt);
}