<?php

namespace App\Entity;

use App\Repository\ChimpRepository;
use DateTimeImmutable;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=ChimpRepository::class)
 */
class Chimp
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     * @var int
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=100)
     * @var string
     */
    private $type;

    /**
     * @ORM\Column(type="string", length=255)
     * @var string
     */
    private $subject;

    /**
     * @ORM\Column(type="string", length=100)
     * @var string
     */
    private $chimp_Id;

    /**
     * @ORM\Column(type="integer")
     * @var int
     */
    private $emails_sent;

    /**
     * @ORM\Column(type="datetime_immutable")
     * @var DateTimeImmutable
     */
    private $sendAt;

    /**
     * @ORM\Column(type="integer")
     * @var int
     */
    private $opens;

    /**
     * @ORM\Column(type="integer")
     * @var int
     */
    private $clicks;

    /**
     * @ORM\Column(type="float", nullable=true)
     * @var float
     */
    private $openRate;

    /**
     * @ORM\Column(type="float", nullable=true)
     * @var float
     */
    private $clickRate;

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

    public function getType(): ?string
    {
        return $this->type;
    }

    public function setType(string $type): self
    {
        $this->type = $type;

        return $this;
    }

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

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

        return $this;
    }

    public function getChimpId(): ?string
    {
        return $this->chimp_Id;
    }

    public function setChimpId(string $chimp_Id): self
    {
        $this->chimp_Id = $chimp_Id;

        return $this;
    }

    public function getEmailsSent(): ?int
    {
        return $this->emails_sent;
    }

    public function setEmailsSent(int $emails_sent): self
    {
        $this->emails_sent = $emails_sent;

        return $this;
    }

    public function getSendAt(): ?\DateTimeImmutable
    {
        return $this->sendAt;
    }

    public function setSendAt(\DateTimeImmutable $sendAt): self
    {
        $this->sendAt = $sendAt;

        return $this;
    }

    public function getOpens(): ?int
    {
        return $this->opens;
    }

    public function setOpens(int $opens): self
    {
        $this->opens = $opens;

        return $this;
    }

    public function getClicks(): ?int
    {
        return $this->clicks;
    }

    public function setClicks(int $clicks): self
    {
        $this->clicks = $clicks;

        return $this;
    }

    public function getOpenRate(): ?float
    {
        return $this->openRate;
    }

    public function setOpenRate(?float $openRate): self
    {
        $this->openRate = $openRate;

        return $this;
    }

    public function getClickRate(): ?float
    {
        return $this->clickRate;
    }

    public function setClickRate(?float $clickRate): self
    {
        $this->clickRate = $clickRate;

        return $this;
    }
}
