<?php
 
 
 

namespace PhpWA\Protocol\Proto;

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




class MsgOpaqueData extends \Google\Protobuf\Internal\Message
{
    


    protected $body = null;
    


    protected $caption = null;
    


    protected $lng = null;
    


    protected $isLive = null;
    


    protected $lat = null;
    


    protected $paymentAmount1000 = null;
    


    protected $paymentNoteMsgBody = null;
    


    protected $matchedText = null;
    


    protected $title = null;
    


    protected $description = null;
    


    protected $futureproofBuffer = null;
    


    protected $clientUrl = null;
    


    protected $loc = null;
    


    protected $pollName = null;
    


    private $pollOptions;
    


    protected $pollSelectableOptionsCount = null;
    


    protected $messageSecret = null;
    


    protected $originalSelfAuthor = null;
    


    protected $senderTimestampMs = null;
    


    protected $pollUpdateParentKey = null;
    


    protected $encPollVote = null;
    


    protected $isSentCagPollCreation = null;
    


    protected $pollContentType = null;
    


    protected $pollType = null;
    


    protected $correctOptionIndex = null;
    


    protected $pollVotesSnapshot = null;
    


    protected $encReactionTargetMessageKey = null;
    


    protected $encReactionEncPayload = null;
    


    protected $encReactionEncIv = null;
    


    protected $botMessageSecret = null;
    


    protected $targetMessageKey = null;
    


    protected $encPayload = null;
    


    protected $encIv = null;
    


    protected $eventName = null;
    


    protected $isEventCanceled = null;
    


    protected $eventDescription = null;
    


    protected $eventJoinLink = null;
    


    protected $eventStartTime = null;
    


    protected $eventLocation = null;
    


    protected $eventEndTime = null;
    


    protected $eventIsScheduledCall = null;
    


    protected $eventExtraGuestsAllowed = null;
    


    protected $plainProtobufBytes = null;

    


















































    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    



    public function getBody()
    {
        return isset($this->body) ? $this->body : '';
    }

    public function hasBody()
    {
        return isset($this->body);
    }

    public function clearBody()
    {
        unset($this->body);
    }

    




    public function setBody($var)
    {
        GPBUtil::checkString($var, True);
        $this->body = $var;

        return $this;
    }

    



    public function getCaption()
    {
        return isset($this->caption) ? $this->caption : '';
    }

    public function hasCaption()
    {
        return isset($this->caption);
    }

    public function clearCaption()
    {
        unset($this->caption);
    }

    




    public function setCaption($var)
    {
        GPBUtil::checkString($var, True);
        $this->caption = $var;

        return $this;
    }

    



    public function getLng()
    {
        return isset($this->lng) ? $this->lng : 0.0;
    }

    public function hasLng()
    {
        return isset($this->lng);
    }

    public function clearLng()
    {
        unset($this->lng);
    }

    




    public function setLng($var)
    {
        GPBUtil::checkDouble($var);
        $this->lng = $var;

        return $this;
    }

    



    public function getIsLive()
    {
        return isset($this->isLive) ? $this->isLive : false;
    }

    public function hasIsLive()
    {
        return isset($this->isLive);
    }

    public function clearIsLive()
    {
        unset($this->isLive);
    }

    




    public function setIsLive($var)
    {
        GPBUtil::checkBool($var);
        $this->isLive = $var;

        return $this;
    }

    



    public function getLat()
    {
        return isset($this->lat) ? $this->lat : 0.0;
    }

    public function hasLat()
    {
        return isset($this->lat);
    }

    public function clearLat()
    {
        unset($this->lat);
    }

    




    public function setLat($var)
    {
        GPBUtil::checkDouble($var);
        $this->lat = $var;

        return $this;
    }

    



    public function getPaymentAmount1000()
    {
        return isset($this->paymentAmount1000) ? $this->paymentAmount1000 : 0;
    }

    public function hasPaymentAmount1000()
    {
        return isset($this->paymentAmount1000);
    }

    public function clearPaymentAmount1000()
    {
        unset($this->paymentAmount1000);
    }

    




    public function setPaymentAmount1000($var)
    {
        GPBUtil::checkInt32($var);
        $this->paymentAmount1000 = $var;

        return $this;
    }

    



    public function getPaymentNoteMsgBody()
    {
        return isset($this->paymentNoteMsgBody) ? $this->paymentNoteMsgBody : '';
    }

    public function hasPaymentNoteMsgBody()
    {
        return isset($this->paymentNoteMsgBody);
    }

    public function clearPaymentNoteMsgBody()
    {
        unset($this->paymentNoteMsgBody);
    }

    




    public function setPaymentNoteMsgBody($var)
    {
        GPBUtil::checkString($var, True);
        $this->paymentNoteMsgBody = $var;

        return $this;
    }

    



    public function getMatchedText()
    {
        return isset($this->matchedText) ? $this->matchedText : '';
    }

    public function hasMatchedText()
    {
        return isset($this->matchedText);
    }

    public function clearMatchedText()
    {
        unset($this->matchedText);
    }

    




    public function setMatchedText($var)
    {
        GPBUtil::checkString($var, True);
        $this->matchedText = $var;

        return $this;
    }

    



    public function getTitle()
    {
        return isset($this->title) ? $this->title : '';
    }

    public function hasTitle()
    {
        return isset($this->title);
    }

    public function clearTitle()
    {
        unset($this->title);
    }

    




    public function setTitle($var)
    {
        GPBUtil::checkString($var, True);
        $this->title = $var;

        return $this;
    }

    



    public function getDescription()
    {
        return isset($this->description) ? $this->description : '';
    }

    public function hasDescription()
    {
        return isset($this->description);
    }

    public function clearDescription()
    {
        unset($this->description);
    }

    




    public function setDescription($var)
    {
        GPBUtil::checkString($var, True);
        $this->description = $var;

        return $this;
    }

    



    public function getFutureproofBuffer()
    {
        return isset($this->futureproofBuffer) ? $this->futureproofBuffer : '';
    }

    public function hasFutureproofBuffer()
    {
        return isset($this->futureproofBuffer);
    }

    public function clearFutureproofBuffer()
    {
        unset($this->futureproofBuffer);
    }

    




    public function setFutureproofBuffer($var)
    {
        GPBUtil::checkString($var, False);
        $this->futureproofBuffer = $var;

        return $this;
    }

    



    public function getClientUrl()
    {
        return isset($this->clientUrl) ? $this->clientUrl : '';
    }

    public function hasClientUrl()
    {
        return isset($this->clientUrl);
    }

    public function clearClientUrl()
    {
        unset($this->clientUrl);
    }

    




    public function setClientUrl($var)
    {
        GPBUtil::checkString($var, True);
        $this->clientUrl = $var;

        return $this;
    }

    



    public function getLoc()
    {
        return isset($this->loc) ? $this->loc : '';
    }

    public function hasLoc()
    {
        return isset($this->loc);
    }

    public function clearLoc()
    {
        unset($this->loc);
    }

    




    public function setLoc($var)
    {
        GPBUtil::checkString($var, True);
        $this->loc = $var;

        return $this;
    }

    



    public function getPollName()
    {
        return isset($this->pollName) ? $this->pollName : '';
    }

    public function hasPollName()
    {
        return isset($this->pollName);
    }

    public function clearPollName()
    {
        unset($this->pollName);
    }

    




    public function setPollName($var)
    {
        GPBUtil::checkString($var, True);
        $this->pollName = $var;

        return $this;
    }

    



    public function getPollOptions()
    {
        return $this->pollOptions;
    }

    




    public function setPollOptions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\MsgOpaqueData\PollOption::class);
        $this->pollOptions = $arr;

        return $this;
    }

    



    public function getPollSelectableOptionsCount()
    {
        return isset($this->pollSelectableOptionsCount) ? $this->pollSelectableOptionsCount : 0;
    }

    public function hasPollSelectableOptionsCount()
    {
        return isset($this->pollSelectableOptionsCount);
    }

    public function clearPollSelectableOptionsCount()
    {
        unset($this->pollSelectableOptionsCount);
    }

    




    public function setPollSelectableOptionsCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->pollSelectableOptionsCount = $var;

        return $this;
    }

    



    public function getMessageSecret()
    {
        return isset($this->messageSecret) ? $this->messageSecret : '';
    }

    public function hasMessageSecret()
    {
        return isset($this->messageSecret);
    }

    public function clearMessageSecret()
    {
        unset($this->messageSecret);
    }

    




    public function setMessageSecret($var)
    {
        GPBUtil::checkString($var, False);
        $this->messageSecret = $var;

        return $this;
    }

    



    public function getOriginalSelfAuthor()
    {
        return isset($this->originalSelfAuthor) ? $this->originalSelfAuthor : '';
    }

    public function hasOriginalSelfAuthor()
    {
        return isset($this->originalSelfAuthor);
    }

    public function clearOriginalSelfAuthor()
    {
        unset($this->originalSelfAuthor);
    }

    




    public function setOriginalSelfAuthor($var)
    {
        GPBUtil::checkString($var, True);
        $this->originalSelfAuthor = $var;

        return $this;
    }

    



    public function getSenderTimestampMs()
    {
        return isset($this->senderTimestampMs) ? $this->senderTimestampMs : 0;
    }

    public function hasSenderTimestampMs()
    {
        return isset($this->senderTimestampMs);
    }

    public function clearSenderTimestampMs()
    {
        unset($this->senderTimestampMs);
    }

    




    public function setSenderTimestampMs($var)
    {
        GPBUtil::checkInt64($var);
        $this->senderTimestampMs = $var;

        return $this;
    }

    



    public function getPollUpdateParentKey()
    {
        return isset($this->pollUpdateParentKey) ? $this->pollUpdateParentKey : '';
    }

    public function hasPollUpdateParentKey()
    {
        return isset($this->pollUpdateParentKey);
    }

    public function clearPollUpdateParentKey()
    {
        unset($this->pollUpdateParentKey);
    }

    




    public function setPollUpdateParentKey($var)
    {
        GPBUtil::checkString($var, True);
        $this->pollUpdateParentKey = $var;

        return $this;
    }

    



    public function getEncPollVote()
    {
        return $this->encPollVote;
    }

    public function hasEncPollVote()
    {
        return isset($this->encPollVote);
    }

    public function clearEncPollVote()
    {
        unset($this->encPollVote);
    }

    




    public function setEncPollVote($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\PollEncValue::class);
        $this->encPollVote = $var;

        return $this;
    }

    



    public function getIsSentCagPollCreation()
    {
        return isset($this->isSentCagPollCreation) ? $this->isSentCagPollCreation : false;
    }

    public function hasIsSentCagPollCreation()
    {
        return isset($this->isSentCagPollCreation);
    }

    public function clearIsSentCagPollCreation()
    {
        unset($this->isSentCagPollCreation);
    }

    




    public function setIsSentCagPollCreation($var)
    {
        GPBUtil::checkBool($var);
        $this->isSentCagPollCreation = $var;

        return $this;
    }

    



    public function getPollContentType()
    {
        return isset($this->pollContentType) ? $this->pollContentType : 0;
    }

    public function hasPollContentType()
    {
        return isset($this->pollContentType);
    }

    public function clearPollContentType()
    {
        unset($this->pollContentType);
    }

    




    public function setPollContentType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\MsgOpaqueData\PollContentType::class);
        $this->pollContentType = $var;

        return $this;
    }

    



    public function getPollType()
    {
        return isset($this->pollType) ? $this->pollType : 0;
    }

    public function hasPollType()
    {
        return isset($this->pollType);
    }

    public function clearPollType()
    {
        unset($this->pollType);
    }

    




    public function setPollType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\MsgOpaqueData\PollType::class);
        $this->pollType = $var;

        return $this;
    }

    



    public function getCorrectOptionIndex()
    {
        return isset($this->correctOptionIndex) ? $this->correctOptionIndex : 0;
    }

    public function hasCorrectOptionIndex()
    {
        return isset($this->correctOptionIndex);
    }

    public function clearCorrectOptionIndex()
    {
        unset($this->correctOptionIndex);
    }

    




    public function setCorrectOptionIndex($var)
    {
        GPBUtil::checkInt32($var);
        $this->correctOptionIndex = $var;

        return $this;
    }

    



    public function getPollVotesSnapshot()
    {
        return $this->pollVotesSnapshot;
    }

    public function hasPollVotesSnapshot()
    {
        return isset($this->pollVotesSnapshot);
    }

    public function clearPollVotesSnapshot()
    {
        unset($this->pollVotesSnapshot);
    }

    




    public function setPollVotesSnapshot($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MsgOpaqueData\PollVotesSnapshot::class);
        $this->pollVotesSnapshot = $var;

        return $this;
    }

    



    public function getEncReactionTargetMessageKey()
    {
        return isset($this->encReactionTargetMessageKey) ? $this->encReactionTargetMessageKey : '';
    }

    public function hasEncReactionTargetMessageKey()
    {
        return isset($this->encReactionTargetMessageKey);
    }

    public function clearEncReactionTargetMessageKey()
    {
        unset($this->encReactionTargetMessageKey);
    }

    




    public function setEncReactionTargetMessageKey($var)
    {
        GPBUtil::checkString($var, True);
        $this->encReactionTargetMessageKey = $var;

        return $this;
    }

    



    public function getEncReactionEncPayload()
    {
        return isset($this->encReactionEncPayload) ? $this->encReactionEncPayload : '';
    }

    public function hasEncReactionEncPayload()
    {
        return isset($this->encReactionEncPayload);
    }

    public function clearEncReactionEncPayload()
    {
        unset($this->encReactionEncPayload);
    }

    




    public function setEncReactionEncPayload($var)
    {
        GPBUtil::checkString($var, False);
        $this->encReactionEncPayload = $var;

        return $this;
    }

    



    public function getEncReactionEncIv()
    {
        return isset($this->encReactionEncIv) ? $this->encReactionEncIv : '';
    }

    public function hasEncReactionEncIv()
    {
        return isset($this->encReactionEncIv);
    }

    public function clearEncReactionEncIv()
    {
        unset($this->encReactionEncIv);
    }

    




    public function setEncReactionEncIv($var)
    {
        GPBUtil::checkString($var, False);
        $this->encReactionEncIv = $var;

        return $this;
    }

    



    public function getBotMessageSecret()
    {
        return isset($this->botMessageSecret) ? $this->botMessageSecret : '';
    }

    public function hasBotMessageSecret()
    {
        return isset($this->botMessageSecret);
    }

    public function clearBotMessageSecret()
    {
        unset($this->botMessageSecret);
    }

    




    public function setBotMessageSecret($var)
    {
        GPBUtil::checkString($var, False);
        $this->botMessageSecret = $var;

        return $this;
    }

    



    public function getTargetMessageKey()
    {
        return isset($this->targetMessageKey) ? $this->targetMessageKey : '';
    }

    public function hasTargetMessageKey()
    {
        return isset($this->targetMessageKey);
    }

    public function clearTargetMessageKey()
    {
        unset($this->targetMessageKey);
    }

    




    public function setTargetMessageKey($var)
    {
        GPBUtil::checkString($var, True);
        $this->targetMessageKey = $var;

        return $this;
    }

    



    public function getEncPayload()
    {
        return isset($this->encPayload) ? $this->encPayload : '';
    }

    public function hasEncPayload()
    {
        return isset($this->encPayload);
    }

    public function clearEncPayload()
    {
        unset($this->encPayload);
    }

    




    public function setEncPayload($var)
    {
        GPBUtil::checkString($var, False);
        $this->encPayload = $var;

        return $this;
    }

    



    public function getEncIv()
    {
        return isset($this->encIv) ? $this->encIv : '';
    }

    public function hasEncIv()
    {
        return isset($this->encIv);
    }

    public function clearEncIv()
    {
        unset($this->encIv);
    }

    




    public function setEncIv($var)
    {
        GPBUtil::checkString($var, False);
        $this->encIv = $var;

        return $this;
    }

    



    public function getEventName()
    {
        return isset($this->eventName) ? $this->eventName : '';
    }

    public function hasEventName()
    {
        return isset($this->eventName);
    }

    public function clearEventName()
    {
        unset($this->eventName);
    }

    




    public function setEventName($var)
    {
        GPBUtil::checkString($var, True);
        $this->eventName = $var;

        return $this;
    }

    



    public function getIsEventCanceled()
    {
        return isset($this->isEventCanceled) ? $this->isEventCanceled : false;
    }

    public function hasIsEventCanceled()
    {
        return isset($this->isEventCanceled);
    }

    public function clearIsEventCanceled()
    {
        unset($this->isEventCanceled);
    }

    




    public function setIsEventCanceled($var)
    {
        GPBUtil::checkBool($var);
        $this->isEventCanceled = $var;

        return $this;
    }

    



    public function getEventDescription()
    {
        return isset($this->eventDescription) ? $this->eventDescription : '';
    }

    public function hasEventDescription()
    {
        return isset($this->eventDescription);
    }

    public function clearEventDescription()
    {
        unset($this->eventDescription);
    }

    




    public function setEventDescription($var)
    {
        GPBUtil::checkString($var, True);
        $this->eventDescription = $var;

        return $this;
    }

    



    public function getEventJoinLink()
    {
        return isset($this->eventJoinLink) ? $this->eventJoinLink : '';
    }

    public function hasEventJoinLink()
    {
        return isset($this->eventJoinLink);
    }

    public function clearEventJoinLink()
    {
        unset($this->eventJoinLink);
    }

    




    public function setEventJoinLink($var)
    {
        GPBUtil::checkString($var, True);
        $this->eventJoinLink = $var;

        return $this;
    }

    



    public function getEventStartTime()
    {
        return isset($this->eventStartTime) ? $this->eventStartTime : 0;
    }

    public function hasEventStartTime()
    {
        return isset($this->eventStartTime);
    }

    public function clearEventStartTime()
    {
        unset($this->eventStartTime);
    }

    




    public function setEventStartTime($var)
    {
        GPBUtil::checkInt64($var);
        $this->eventStartTime = $var;

        return $this;
    }

    



    public function getEventLocation()
    {
        return $this->eventLocation;
    }

    public function hasEventLocation()
    {
        return isset($this->eventLocation);
    }

    public function clearEventLocation()
    {
        unset($this->eventLocation);
    }

    




    public function setEventLocation($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MsgOpaqueData\EventLocation::class);
        $this->eventLocation = $var;

        return $this;
    }

    



    public function getEventEndTime()
    {
        return isset($this->eventEndTime) ? $this->eventEndTime : 0;
    }

    public function hasEventEndTime()
    {
        return isset($this->eventEndTime);
    }

    public function clearEventEndTime()
    {
        unset($this->eventEndTime);
    }

    




    public function setEventEndTime($var)
    {
        GPBUtil::checkInt64($var);
        $this->eventEndTime = $var;

        return $this;
    }

    



    public function getEventIsScheduledCall()
    {
        return isset($this->eventIsScheduledCall) ? $this->eventIsScheduledCall : false;
    }

    public function hasEventIsScheduledCall()
    {
        return isset($this->eventIsScheduledCall);
    }

    public function clearEventIsScheduledCall()
    {
        unset($this->eventIsScheduledCall);
    }

    




    public function setEventIsScheduledCall($var)
    {
        GPBUtil::checkBool($var);
        $this->eventIsScheduledCall = $var;

        return $this;
    }

    



    public function getEventExtraGuestsAllowed()
    {
        return isset($this->eventExtraGuestsAllowed) ? $this->eventExtraGuestsAllowed : false;
    }

    public function hasEventExtraGuestsAllowed()
    {
        return isset($this->eventExtraGuestsAllowed);
    }

    public function clearEventExtraGuestsAllowed()
    {
        unset($this->eventExtraGuestsAllowed);
    }

    




    public function setEventExtraGuestsAllowed($var)
    {
        GPBUtil::checkBool($var);
        $this->eventExtraGuestsAllowed = $var;

        return $this;
    }

    



    public function getPlainProtobufBytes()
    {
        return isset($this->plainProtobufBytes) ? $this->plainProtobufBytes : '';
    }

    public function hasPlainProtobufBytes()
    {
        return isset($this->plainProtobufBytes);
    }

    public function clearPlainProtobufBytes()
    {
        unset($this->plainProtobufBytes);
    }

    




    public function setPlainProtobufBytes($var)
    {
        GPBUtil::checkString($var, False);
        $this->plainProtobufBytes = $var;

        return $this;
    }

}

