<?php

declare(strict_types=1);

namespace CpCreation\VitiCore\Cart\Model\Payment;

use Symfony\Component\Validator\Constraints as Assert;

class Monetico
{
    use EstimatedTransactionFeeTrait;

    #[Assert\NotBlank]
    private ?string $name = null;
    private ?string $subtitle = null;

    #[Assert\NotNull]
    private bool $production = false;

    #[Assert\NotBlank]
    private ?string $hmacKey = null;

    #[Assert\NotBlank]
    private ?string $eptNumber = null;

    #[Assert\NotBlank]
    private string $version = '3.0';

    #[Assert\NotBlank]
    private ?string $companyCode = null;

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

    public function setName(string $name): void
    {
        $this->name = $name;
    }

    public function getSubtitle(): ?string
    {
        return $this->subtitle;
    }

    public function setSubtitle(?string $subtitle): void
    {
        $this->subtitle = $subtitle;
    }

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

    public function setProduction(bool $production): void
    {
        $this->production = $production;
    }

    public function getHmacKey(): ?string
    {
        return $this->hmacKey;
    }

    public function setHmacKey(string $hmacKey): void
    {
        $this->hmacKey = $hmacKey;
    }

    public function getEptNumber(): ?string
    {
        return $this->eptNumber;
    }

    public function setEptNumber(string $eptNumber): void
    {
        $this->eptNumber = $eptNumber;
    }

    public function getVersion(): string
    {
        return $this->version;
    }

    public function setVersion(string $version): void
    {
        $this->version = $version;
    }

    public function getCompanyCode(): ?string
    {
        return $this->companyCode;
    }

    public function setCompanyCode(string $companyCode): void
    {
        $this->companyCode = $companyCode;
    }
}
