<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: keyapis/subscription/v1/keyapis_subscription_offer_template_v1.proto

namespace Keyapis\Subscription\V1\OfferTemplate;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Правила применимости Шаблона КВ
 *
 * Generated from protobuf message <code>keyapis.subscription.v1.OfferTemplate.ApplicabilityRules</code>
 */
class ApplicabilityRules extends \Google\Protobuf\Internal\Message
{
    /**
     * Ограничение по регионам.
     * # Диапазон: 0..100
     *
     * Generated from protobuf field <code>repeated int32 rf_ids = 1;</code>
     */
    private $rf_ids;
    /**
     * Договорная схема
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ContractType contract_type = 2;</code>
     */
    protected $contract_type = 0;
    /**
     * Тип клиента.
     * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ClientType client_type = 3;</code>
     */
    protected $client_type = 0;
    /**
     * Биллинговая система.
     * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.BillingSystemType billing_system_type = 4;</code>
     */
    protected $billing_system_type = 0;
    /**
     * Принимаются ли платежи за умный домофон на счёт внешней компании
     *
     * Generated from protobuf field <code>bool is_external_payment_for_smart_intercom = 5;</code>
     */
    protected $is_external_payment_for_smart_intercom = false;
    /**
     * Аналоговые трубки устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_cms_phone = 6;</code>
     */
    protected $is_cms_phone = false;
    /**
     * SIP-трубки устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_sip_phone = 7;</code>
     */
    protected $is_sip_phone = false;
    /**
     * Видеомониторы устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_video_monitor = 8;</code>
     */
    protected $is_video_monitor = false;
    /**
     * Тип договорной схемы устройства в квартире
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.RoomDeviceContractType room_device_contract_type = 9;</code>
     */
    protected $room_device_contract_type = 0;
    /**
     * Минимальный бесплатный пакет мобильного приложения
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.MobileAppPackageType mobile_app_package_type = 10;</code>
     */
    protected $mobile_app_package_type = 0;
    /**
     * Переадресация на городские/мобильные номера
     *
     * Generated from protobuf field <code>bool is_call_forwarding_enabled = 11;</code>
     */
    protected $is_call_forwarding_enabled = false;
    /**
     * Цифровой клиентский путь
     *
     * Generated from protobuf field <code>bool is_digital_way = 12;</code>
     */
    protected $is_digital_way = false;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type array<int>|\Google\Protobuf\Internal\RepeatedField $rf_ids
     *           Ограничение по регионам.
     *           # Диапазон: 0..100
     *     @type int $contract_type
     *           Договорная схема
     *     @type int $client_type
     *           Тип клиента.
     *           Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *     @type int $billing_system_type
     *           Биллинговая система.
     *           Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *     @type bool $is_external_payment_for_smart_intercom
     *           Принимаются ли платежи за умный домофон на счёт внешней компании
     *     @type bool $is_cms_phone
     *           Аналоговые трубки устанавливаются в квартирах объекта
     *     @type bool $is_sip_phone
     *           SIP-трубки устанавливаются в квартирах объекта
     *     @type bool $is_video_monitor
     *           Видеомониторы устанавливаются в квартирах объекта
     *     @type int $room_device_contract_type
     *           Тип договорной схемы устройства в квартире
     *     @type int $mobile_app_package_type
     *           Минимальный бесплатный пакет мобильного приложения
     *     @type bool $is_call_forwarding_enabled
     *           Переадресация на городские/мобильные номера
     *     @type bool $is_digital_way
     *           Цифровой клиентский путь
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Keyapis\Subscription\V1\KeyapisSubscriptionOfferTemplateV1::initOnce();
        parent::__construct($data);
    }

    /**
     * Ограничение по регионам.
     * # Диапазон: 0..100
     *
     * Generated from protobuf field <code>repeated int32 rf_ids = 1;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getRfIds()
    {
        return $this->rf_ids;
    }

    /**
     * Ограничение по регионам.
     * # Диапазон: 0..100
     *
     * Generated from protobuf field <code>repeated int32 rf_ids = 1;</code>
     * @param array<int>|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setRfIds($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT32);
        $this->rf_ids = $arr;

        return $this;
    }

    /**
     * Договорная схема
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ContractType contract_type = 2;</code>
     * @return int
     */
    public function getContractType()
    {
        return $this->contract_type;
    }

    /**
     * Договорная схема
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ContractType contract_type = 2;</code>
     * @param int $var
     * @return $this
     */
    public function setContractType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Subscription\V1\OfferTemplate\ApplicabilityRules\ContractType::class);
        $this->contract_type = $var;

        return $this;
    }

    /**
     * Тип клиента.
     * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ClientType client_type = 3;</code>
     * @return int
     */
    public function getClientType()
    {
        return $this->client_type;
    }

    /**
     * Тип клиента.
     * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ClientType client_type = 3;</code>
     * @param int $var
     * @return $this
     */
    public function setClientType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Subscription\V1\OfferTemplate\ApplicabilityRules\ClientType::class);
        $this->client_type = $var;

        return $this;
    }

    /**
     * Биллинговая система.
     * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.BillingSystemType billing_system_type = 4;</code>
     * @return int
     */
    public function getBillingSystemType()
    {
        return $this->billing_system_type;
    }

    /**
     * Биллинговая система.
     * Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.BillingSystemType billing_system_type = 4;</code>
     * @param int $var
     * @return $this
     */
    public function setBillingSystemType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Subscription\V1\OfferTemplate\ApplicabilityRules\BillingSystemType::class);
        $this->billing_system_type = $var;

        return $this;
    }

    /**
     * Принимаются ли платежи за умный домофон на счёт внешней компании
     *
     * Generated from protobuf field <code>bool is_external_payment_for_smart_intercom = 5;</code>
     * @return bool
     */
    public function getIsExternalPaymentForSmartIntercom()
    {
        return $this->is_external_payment_for_smart_intercom;
    }

    /**
     * Принимаются ли платежи за умный домофон на счёт внешней компании
     *
     * Generated from protobuf field <code>bool is_external_payment_for_smart_intercom = 5;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsExternalPaymentForSmartIntercom($var)
    {
        GPBUtil::checkBool($var);
        $this->is_external_payment_for_smart_intercom = $var;

        return $this;
    }

    /**
     * Аналоговые трубки устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_cms_phone = 6;</code>
     * @return bool
     */
    public function getIsCmsPhone()
    {
        return $this->is_cms_phone;
    }

    /**
     * Аналоговые трубки устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_cms_phone = 6;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsCmsPhone($var)
    {
        GPBUtil::checkBool($var);
        $this->is_cms_phone = $var;

        return $this;
    }

    /**
     * SIP-трубки устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_sip_phone = 7;</code>
     * @return bool
     */
    public function getIsSipPhone()
    {
        return $this->is_sip_phone;
    }

    /**
     * SIP-трубки устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_sip_phone = 7;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsSipPhone($var)
    {
        GPBUtil::checkBool($var);
        $this->is_sip_phone = $var;

        return $this;
    }

    /**
     * Видеомониторы устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_video_monitor = 8;</code>
     * @return bool
     */
    public function getIsVideoMonitor()
    {
        return $this->is_video_monitor;
    }

    /**
     * Видеомониторы устанавливаются в квартирах объекта
     *
     * Generated from protobuf field <code>bool is_video_monitor = 8;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsVideoMonitor($var)
    {
        GPBUtil::checkBool($var);
        $this->is_video_monitor = $var;

        return $this;
    }

    /**
     * Тип договорной схемы устройства в квартире
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.RoomDeviceContractType room_device_contract_type = 9;</code>
     * @return int
     */
    public function getRoomDeviceContractType()
    {
        return $this->room_device_contract_type;
    }

    /**
     * Тип договорной схемы устройства в квартире
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.RoomDeviceContractType room_device_contract_type = 9;</code>
     * @param int $var
     * @return $this
     */
    public function setRoomDeviceContractType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Subscription\V1\OfferTemplate\ApplicabilityRules\RoomDeviceContractType::class);
        $this->room_device_contract_type = $var;

        return $this;
    }

    /**
     * Минимальный бесплатный пакет мобильного приложения
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.MobileAppPackageType mobile_app_package_type = 10;</code>
     * @return int
     */
    public function getMobileAppPackageType()
    {
        return $this->mobile_app_package_type;
    }

    /**
     * Минимальный бесплатный пакет мобильного приложения
     *
     * Generated from protobuf field <code>.keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.MobileAppPackageType mobile_app_package_type = 10;</code>
     * @param int $var
     * @return $this
     */
    public function setMobileAppPackageType($var)
    {
        GPBUtil::checkEnum($var, \Keyapis\Subscription\V1\OfferTemplate\ApplicabilityRules\MobileAppPackageType::class);
        $this->mobile_app_package_type = $var;

        return $this;
    }

    /**
     * Переадресация на городские/мобильные номера
     *
     * Generated from protobuf field <code>bool is_call_forwarding_enabled = 11;</code>
     * @return bool
     */
    public function getIsCallForwardingEnabled()
    {
        return $this->is_call_forwarding_enabled;
    }

    /**
     * Переадресация на городские/мобильные номера
     *
     * Generated from protobuf field <code>bool is_call_forwarding_enabled = 11;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsCallForwardingEnabled($var)
    {
        GPBUtil::checkBool($var);
        $this->is_call_forwarding_enabled = $var;

        return $this;
    }

    /**
     * Цифровой клиентский путь
     *
     * Generated from protobuf field <code>bool is_digital_way = 12;</code>
     * @return bool
     */
    public function getIsDigitalWay()
    {
        return $this->is_digital_way;
    }

    /**
     * Цифровой клиентский путь
     *
     * Generated from protobuf field <code>bool is_digital_way = 12;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsDigitalWay($var)
    {
        GPBUtil::checkBool($var);
        $this->is_digital_way = $var;

        return $this;
    }

}

// Adding a class alias for backwards compatibility with the previous class name.
class_alias(ApplicabilityRules::class, \Keyapis\Subscription\V1\OfferTemplate_ApplicabilityRules::class);

