<?php

declare(strict_types=1);

/* For licensing terms, see /license.txt */

namespace Chamilo\CoreBundle\Entity;

use Chamilo\CoreBundle\Repository\ScheduledAnnouncementRepository;
use DateTime;
use Doctrine\ORM\Mapping as ORM;

/**
 * ScheduledAnnouncement.
 */
#[ORM\Table(name: 'scheduled_announcements')]
#[ORM\Entity(repositoryClass: ScheduledAnnouncementRepository::class)]
class ScheduledAnnouncement
{
    #[ORM\Column(name: 'id', type: 'integer')]
    #[ORM\Id]
    #[ORM\GeneratedValue]
    protected ?int $id = null;

    #[ORM\Column(name: 'subject', type: 'string', length: 255)]
    protected string $subject;

    #[ORM\Column(name: 'message', type: 'text', unique: false)]
    protected string $message;

    #[ORM\Column(name: 'date', type: 'datetime', nullable: true)]
    protected ?DateTime $date = null;

    #[ORM\Column(name: 'sent', type: 'boolean')]
    protected bool $sent;

    #[ORM\Column(name: 'session_id', type: 'integer', nullable: false)]
    protected int $sessionId;

    #[ORM\Column(name: 'c_id', type: 'integer', nullable: true)]
    protected ?int $cId = null;

    public function __construct() {}

    public function getId(): int
    {
        return $this->id;
    }

    public function getSubject(): string
    {
        return $this->subject;
    }

    public function setSubject(string $subject): self
    {
        $this->subject = $subject;

        return $this;
    }

    public function getMessage(): string
    {
        return $this->message;
    }

    public function setMessage(string $message): self
    {
        $this->message = $message;

        return $this;
    }

    public function getDate(): DateTime
    {
        return $this->date;
    }

    public function setDate(DateTime $date): self
    {
        $this->date = $date;

        return $this;
    }

    public function isSent(): bool
    {
        return $this->sent;
    }

    public function setSent(bool $sent): self
    {
        $this->sent = $sent;

        return $this;
    }

    public function getSessionId(): int
    {
        return $this->sessionId;
    }

    public function setSessionId(int $sessionId): self
    {
        $this->sessionId = $sessionId;

        return $this;
    }

    public function getCId(): int
    {
        return $this->cId;
    }

    public function setCId(int $cId): self
    {
        $this->cId = $cId;

        return $this;
    }
}
