<?php

namespace App\Entity\KeyHelp;

use DateTime;

/**
 *
 */
class KeyHelpDomain
{
    private int $id;
    private int $idUser;
    private int $idParentDomain;
    private int $status;
    private string $domain;
    private string $domainUtf8;
    private DateTime $createdAt;
    private string $phpVersion;
    private bool $isDisabled;
    private ?DateTime $deleteOn;
    private string $dkimTxtRecord;
    private bool $isCustomDns;
    private bool $isDnsDisabled;
    private bool $isSubdomain;
    private bool $isSystemDomain;
    private bool $isEmailDomain;
    private Target $target;
    private Security $security;
    private Apache $apache;
    private string $dkimSelector;
    private string $dkimRecord;
    private ?string $dkimTextRecord;

    public function __construct()
    {
        $this->dkimTextRecord = null;
    }
    private int $traffic;

    private bool $isEmailSendingOnly;

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

    public function setIsEmailSendingOnly(bool $isEmailSendingOnly): void
    {
        $this->isEmailSendingOnly = $isEmailSendingOnly;
    }


    public function getTraffic(): int
    {
        return $this->traffic;
    }

    public function setTraffic(int $traffic): void
    {
        $this->traffic = $traffic;
    }

    public function getDkimTextRecord(): string
    {
        return $this->dkimTextRecord;
    }

    public function setDkimTextRecord(string $dkimTextRecord): void
    {
        $this->dkimTextRecord = $dkimTextRecord;
    }

    public function getDkimRecord(): string
    {
        return $this->dkimRecord;
    }

    public function setDkimRecord(string $dkimRecord): void
    {
        $this->dkimRecord = $dkimRecord;
    }


    public function getDkimSelector(): string
    {
        return $this->dkimSelector;
    }

    public function setDkimSelector(string $dkimSelector): void
    {
        $this->dkimSelector = $dkimSelector;
    }


    /**
     * @return Apache
     */
    public function getApache(): Apache
    {
        return $this->apache;
    }

    /**
     * @param Apache $apache
     */
    public function setApache(Apache $apache): void
    {
        $this->apache = $apache;
    }

    /**
     * @return Security
     */
    public function getSecurity(): Security
    {
        return $this->security;
    }

    /**
     * @param Security $security
     */
    public function setSecurity(Security $security): void
    {
        $this->security = $security;
    }

    /**
     * @return Target
     */
    public function getTarget(): Target
    {
        return $this->target;
    }

    /**
     * @param Target $target
     */
    public function setTarget(Target $target): void
    {
        $this->target = $target;
    }


    /**
     * @return bool
     */
    public function isEmailDomain(): bool
    {
        return $this->isEmailDomain;
    }

    /**
     * @param bool $isEmailDomain
     */
    public function setIsEmailDomain(bool $isEmailDomain): void
    {
        $this->isEmailDomain = $isEmailDomain;
    }


    /**
     * @return bool
     */
    public function isSystemDomain(): bool
    {
        return $this->isSystemDomain;
    }

    /**
     * @param bool $isSystemDomain
     */
    public function setIsSystemDomain(bool $isSystemDomain): void
    {
        $this->isSystemDomain = $isSystemDomain;
    }


    /**
     * @return bool
     */
    public function isSubdomain(): bool
    {
        return $this->isSubdomain;
    }

    /**
     * @param bool $isSubdomain
     */
    public function setIsSubdomain(bool $isSubdomain): void
    {
        $this->isSubdomain = $isSubdomain;
    }

    /**
     * @return bool
     */
    public function isDnsDisabled(): bool
    {
        return $this->isDnsDisabled;
    }

    /**
     * @param bool $isDnsDisabled
     */
    public function setIsDnsDisabled(bool $isDnsDisabled): void
    {
        $this->isDnsDisabled = $isDnsDisabled;
    }


    /**
     * @return bool
     */
    public function isCustomDns(): bool
    {
        return $this->isCustomDns;
    }

    /**
     * @param bool $isCustomDns
     */
    public function setIsCustomDns(bool $isCustomDns): void
    {
        $this->isCustomDns = $isCustomDns;
    }


    /**
     * @return string
     */
    public function getDkimTxtRecord(): string
    {
        return $this->dkimTxtRecord;
    }

    /**
     * @param string $dkimTxtRecord
     */
    public function setDkimTxtRecord(string $dkimTxtRecord): void
    {
        $this->dkimTxtRecord = $dkimTxtRecord;
    }

    /**
     * @return DateTime
     */
    public function getDeleteOn(): DateTime
    {
        return $this->deleteOn;
    }

    /**
     * @param DateTime|null $deleteOn
     */
    public function setDeleteOn(?DateTime $deleteOn): void
    {
        $this->deleteOn = $deleteOn;
    }

    /**
     * @return bool
     */
    public function isDisabled(): bool
    {
        return $this->isDisabled;
    }

    /**
     * @param bool $isDisabled
     */
    public function setIsDisabled(bool $isDisabled): void
    {
        $this->isDisabled = $isDisabled;
    }

    /**
     * @return string
     */
    public function getPhpVersion(): string
    {
        return $this->phpVersion;
    }

    /**
     * @param string $phpVersion
     */
    public function setPhpVersion(string $phpVersion): void
    {
        $this->phpVersion = $phpVersion;
    }

    /**
     * @return DateTime
     */
    public function getCreatedAt(): DateTime
    {
        return $this->createdAt;
    }

    /**
     * @param DateTime $createdAt
     */
    public function setCreatedAt(DateTime $createdAt): void
    {
        $this->createdAt = $createdAt;
    }


    /**
     * @return string
     */
    public function getDomainUtf8(): string
    {
        return $this->domainUtf8;
    }

    /**
     * @param string $domainUtf8
     */
    public function setDomainUtf8(string $domainUtf8): void
    {
        $this->domainUtf8 = $domainUtf8;
    }

    /**
     * @return string
     */
    public function getDomain(): string
    {
        return $this->domain;
    }

    /**
     * @param string $domain
     */
    public function setDomain(string $domain): void
    {
        $this->domain = $domain;
    }

    /**
     * @return int
     */
    public function getStatus(): int
    {
        return $this->status;
    }

    /**
     * @param int $status
     */
    public function setStatus(int $status): void
    {
        $this->status = $status;
    }

    /**
     * @return int
     */
    public function getIdParentDomain(): int
    {
        return $this->idParentDomain;
    }

    /**
     * @param int $idParentDomain
     */
    public function setIdParentDomain(int $idParentDomain): void
    {
        $this->idParentDomain = $idParentDomain;
    }

    /**
     * @return int
     */
    public function getIdUser(): int
    {
        return $this->idUser;
    }

    /**
     * @param int $idUser
     */
    public function setIdUser(int $idUser): void
    {
        $this->idUser = $idUser;
    }

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

    /**
     * @param int $id
     */
    public function setId(int $id): void
    {
        $this->id = $id;
    }
}