<?php

namespace ShopMagicVendor\Getresponse\Sdk\Operation\Model;

use ShopMagicVendor\Getresponse\Sdk\Client\Operation\BaseModel;
class NewCampaign extends BaseModel
{
    /** @var string */
    private $name;
    /** @var string */
    private $languageCode = self::FIELD_NOT_SET;
    /** @var StringBooleanEnum */
    private $isDefault = self::FIELD_NOT_SET;
    /** @var CampaignPostal */
    private $postal = self::FIELD_NOT_SET;
    /** @var CampaignConfirmation */
    private $confirmation = self::FIELD_NOT_SET;
    /** @var CampaignOptinTypes */
    private $optinTypes = self::FIELD_NOT_SET;
    /** @var CampaignSubscriptionNotifications */
    private $subscriptionNotifications = self::FIELD_NOT_SET;
    /** @var CampaignProfile */
    private $profile = self::FIELD_NOT_SET;
    /**
     * @param string $name
     */
    public function __construct($name)
    {
        $this->name = $name;
    }
    /**
     * @param string $languageCode
     */
    public function setLanguageCode($languageCode)
    {
        $this->languageCode = $languageCode;
    }
    /**
     * @param StringBooleanEnum $isDefault
     */
    public function setIsDefault(StringBooleanEnum $isDefault)
    {
        $this->isDefault = $isDefault;
    }
    /**
     * @param CampaignPostal $postal
     */
    public function setPostal(CampaignPostal $postal)
    {
        $this->postal = $postal;
    }
    /**
     * @param CampaignConfirmation $confirmation
     */
    public function setConfirmation(CampaignConfirmation $confirmation)
    {
        $this->confirmation = $confirmation;
    }
    /**
     * @param CampaignOptinTypes $optinTypes
     */
    public function setOptinTypes(CampaignOptinTypes $optinTypes)
    {
        $this->optinTypes = $optinTypes;
    }
    /**
     * @param CampaignSubscriptionNotifications $subscriptionNotifications
     */
    public function setSubscriptionNotifications(CampaignSubscriptionNotifications $subscriptionNotifications)
    {
        $this->subscriptionNotifications = $subscriptionNotifications;
    }
    /**
     * @param CampaignProfile $profile
     */
    public function setProfile(CampaignProfile $profile)
    {
        $this->profile = $profile;
    }
    public function jsonSerialize(): array
    {
        $data = ['name' => $this->name, 'languageCode' => $this->languageCode, 'isDefault' => $this->isDefault, 'postal' => $this->postal, 'confirmation' => $this->confirmation, 'optinTypes' => $this->optinTypes, 'subscriptionNotifications' => $this->subscriptionNotifications, 'profile' => $this->profile];
        return $this->filterUnsetFields($data);
    }
}
