<?php

namespace App\Entity\Campaign\Keyword;

use App\Entity\Campaign\Keyword;
use App\Entity\Traits\TimestampableTrait;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity()
 * @ORM\Table(name="campaign_keyword_check")
 */
class Check
{
    use TimestampableTrait;

    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="integer")
     */
    private $position;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Campaign\Keyword", inversedBy="checks")
     * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
     */
    private $keyword;

    /**
     * @ORM\Column(type="date")
     */
    private $day;

    /**
     * @ORM\Column(type="float", nullable=true, options={"defult": NULL})
     */
    private $googleAdWordsCPC;

    /**
     * @ORM\Column(type="integer", nullable=true, options={"defult": NULL})
     */
    private $monthlySearches;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $diff1;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $diff7;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $diff30;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $landingUrl;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $diff;

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

    public function getPosition(): ?int
    {
        return $this->position;
    }

    public function setPosition(int $position): self
    {
        $this->position = $position;

        return $this;
    }

    public function getKeyword(): ?Keyword
    {
        return $this->keyword;
    }

    public function setKeyword(?Keyword $keyword): self
    {
        $this->keyword = $keyword;

        return $this;
    }

    public function getDay(): ?\DateTimeInterface
    {
        return $this->day;
    }

    public function setDay(\DateTimeInterface $day): self
    {
        $this->day = $day;

        return $this;
    }

    public function getGoogleAdWordsCPC(): ?float
    {
        return $this->googleAdWordsCPC;
    }

    public function setGoogleAdWordsCPC(?float $googleAdWordsCPC): self
    {
        $this->googleAdWordsCPC = $googleAdWordsCPC;

        return $this;
    }

    public function getMonthlySearches(): ?int
    {
        return $this->monthlySearches;
    }

    public function setMonthlySearches(?int $monthlySearches): self
    {
        $this->monthlySearches = $monthlySearches;

        return $this;
    }

    public function getDiff1(): ?int
    {
        return $this->diff1;
    }

    public function setDiff1(?int $diff1): self
    {
        $this->diff1 = $diff1;

        return $this;
    }

    public function getDiff7(): ?int
    {
        return $this->diff7;
    }

    public function setDiff7(?int $diff7): self
    {
        $this->diff7 = $diff7;

        return $this;
    }

    public function getDiff30(): ?int
    {
        return $this->diff30;
    }

    public function setDiff30(?int $diff30): self
    {
        $this->diff30 = $diff30;

        return $this;
    }

    public function getLandingUrl(): ?string
    {
        return $this->landingUrl;
    }

    public function setLandingUrl(?string $landingUrl): self
    {
        $this->landingUrl = $landingUrl;

        return $this;
    }

    public function getDiff(): ?int
    {
        return $this->diff;
    }

    public function setDiff(?int $diff): self
    {
        $this->diff = $diff;

        return $this;
    }
}
