<?php

namespace App\Classes\Modules\Vouchers\DataTransferObjects;

use App\Classes\General\Interfaces\DataTransferObject;

class VoucherCampaignObject implements DataTransferObject
{
    /** @var string */
    private $campaign_id;

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

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

    /** @var int */
    private $limitPerMonth;

    /**
     * VoucherCampaignObject constructor.
     * @param string $campaign_id
     * @param string $name
     * @param null|string $description
     * @param int $limitPerMonth
     */
    public function __construct(string $campaign_id, string $name, ?string $description, int $limitPerMonth)
    {
        $this->campaign_id = $campaign_id;
        $this->name = $name;
        $this->description = $description;
        $this->limitPerMonth = $limitPerMonth;
    }

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

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

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

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