<?php

namespace App\Classes\Modules\Affiliate\DataTransferObjects;

use App\Classes\General\Interfaces\DataTransferObject;

class AffiliateObject implements DataTransferObject
{
    /** @var string | null */
    private ?string $code;

    /** @var string */
    private $campaignName;

    /** @var string|null */
    private $campaignDescription;

    /** @var bool */
    private $isActive;

    /**
     * AffiliateObject constructor.
     * @param string $code
     * @param string $campaignName
     * @param string|null $campaignDescription
     * @param bool $isActive
     */
    public function __construct(string $code = '', string $campaignName, ?string $campaignDescription = null, bool $isActive = true)
    {
        $this->code = $code;
        $this->campaignName = $campaignName;
        $this->campaignDescription = $campaignDescription;
        $this->isActive = $isActive;
    }

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

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

    /**
     * @return string|null
     */
    public function getCampaignDescription(): ?string
    {
        return $this->campaignDescription;
    }

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

