<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: WAProto.proto

namespace PhpWA\Protocol\Proto;

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

/**
 * Generated from protobuf message <code>proto.Conversation</code>
 */
class Conversation extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional string id = 1;</code>
     */
    protected $id = null;
    /**
     * Generated from protobuf field <code>repeated .proto.HistorySyncMsg messages = 2;</code>
     */
    private $messages;
    /**
     * Generated from protobuf field <code>optional string newJid = 3;</code>
     */
    protected $newJid = null;
    /**
     * Generated from protobuf field <code>optional string oldJid = 4;</code>
     */
    protected $oldJid = null;
    /**
     * Generated from protobuf field <code>optional uint64 lastMsgTimestamp = 5;</code>
     */
    protected $lastMsgTimestamp = null;
    /**
     * Generated from protobuf field <code>optional uint32 unreadCount = 6;</code>
     */
    protected $unreadCount = null;
    /**
     * Generated from protobuf field <code>optional bool readOnly = 7;</code>
     */
    protected $readOnly = null;
    /**
     * Generated from protobuf field <code>optional bool endOfHistoryTransfer = 8;</code>
     */
    protected $endOfHistoryTransfer = null;
    /**
     * Generated from protobuf field <code>optional uint32 ephemeralExpiration = 9;</code>
     */
    protected $ephemeralExpiration = null;
    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 10;</code>
     */
    protected $ephemeralSettingTimestamp = null;
    /**
     * Generated from protobuf field <code>optional .proto.Conversation.EndOfHistoryTransferType endOfHistoryTransferType = 11;</code>
     */
    protected $endOfHistoryTransferType = null;
    /**
     * Generated from protobuf field <code>optional uint64 conversationTimestamp = 12;</code>
     */
    protected $conversationTimestamp = null;
    /**
     * Generated from protobuf field <code>optional string name = 13;</code>
     */
    protected $name = null;
    /**
     * Generated from protobuf field <code>optional string pHash = 14;</code>
     */
    protected $pHash = null;
    /**
     * Generated from protobuf field <code>optional bool notSpam = 15;</code>
     */
    protected $notSpam = null;
    /**
     * Generated from protobuf field <code>optional bool archived = 16;</code>
     */
    protected $archived = null;
    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 17;</code>
     */
    protected $disappearingMode = null;
    /**
     * Generated from protobuf field <code>optional uint32 unreadMentionCount = 18;</code>
     */
    protected $unreadMentionCount = null;
    /**
     * Generated from protobuf field <code>optional bool markedAsUnread = 19;</code>
     */
    protected $markedAsUnread = null;
    /**
     * Generated from protobuf field <code>repeated .proto.GroupParticipant participant = 20;</code>
     */
    private $participant;
    /**
     * Generated from protobuf field <code>optional bytes tcToken = 21;</code>
     */
    protected $tcToken = null;
    /**
     * Generated from protobuf field <code>optional uint64 tcTokenTimestamp = 22;</code>
     */
    protected $tcTokenTimestamp = null;
    /**
     * Generated from protobuf field <code>optional bytes contactPrimaryIdentityKey = 23;</code>
     */
    protected $contactPrimaryIdentityKey = null;
    /**
     * Generated from protobuf field <code>optional uint32 pinned = 24;</code>
     */
    protected $pinned = null;
    /**
     * Generated from protobuf field <code>optional uint64 muteEndTime = 25;</code>
     */
    protected $muteEndTime = null;
    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings wallpaper = 26;</code>
     */
    protected $wallpaper = null;
    /**
     * Generated from protobuf field <code>optional .proto.MediaVisibility mediaVisibility = 27;</code>
     */
    protected $mediaVisibility = null;
    /**
     * Generated from protobuf field <code>optional uint64 tcTokenSenderTimestamp = 28;</code>
     */
    protected $tcTokenSenderTimestamp = null;
    /**
     * Generated from protobuf field <code>optional bool suspended = 29;</code>
     */
    protected $suspended = null;
    /**
     * Generated from protobuf field <code>optional bool terminated = 30;</code>
     */
    protected $terminated = null;
    /**
     * Generated from protobuf field <code>optional uint64 createdAt = 31;</code>
     */
    protected $createdAt = null;
    /**
     * Generated from protobuf field <code>optional string createdBy = 32;</code>
     */
    protected $createdBy = null;
    /**
     * Generated from protobuf field <code>optional string description = 33;</code>
     */
    protected $description = null;
    /**
     * Generated from protobuf field <code>optional bool support = 34;</code>
     */
    protected $support = null;
    /**
     * Generated from protobuf field <code>optional bool isParentGroup = 35;</code>
     */
    protected $isParentGroup = null;
    /**
     * Generated from protobuf field <code>optional string parentGroupId = 37;</code>
     */
    protected $parentGroupId = null;
    /**
     * Generated from protobuf field <code>optional bool isDefaultSubgroup = 36;</code>
     */
    protected $isDefaultSubgroup = null;
    /**
     * Generated from protobuf field <code>optional string displayName = 38;</code>
     */
    protected $displayName = null;
    /**
     * Generated from protobuf field <code>optional string pnJid = 39;</code>
     */
    protected $pnJid = null;
    /**
     * Generated from protobuf field <code>optional bool shareOwnPn = 40;</code>
     */
    protected $shareOwnPn = null;
    /**
     * Generated from protobuf field <code>optional bool pnhDuplicateLidThread = 41;</code>
     */
    protected $pnhDuplicateLidThread = null;
    /**
     * Generated from protobuf field <code>optional string lidJid = 42;</code>
     */
    protected $lidJid = null;
    /**
     * Generated from protobuf field <code>optional string username = 43;</code>
     */
    protected $username = null;
    /**
     * Generated from protobuf field <code>optional string lidOriginType = 44;</code>
     */
    protected $lidOriginType = null;
    /**
     * Generated from protobuf field <code>optional uint32 commentsCount = 45;</code>
     */
    protected $commentsCount = null;
    /**
     * Generated from protobuf field <code>optional bool locked = 46;</code>
     */
    protected $locked = null;
    /**
     * Generated from protobuf field <code>optional .proto.PrivacySystemMessage systemMessageToInsert = 47;</code>
     */
    protected $systemMessageToInsert = null;
    /**
     * Generated from protobuf field <code>optional bool capiCreatedGroup = 48;</code>
     */
    protected $capiCreatedGroup = null;
    /**
     * Generated from protobuf field <code>optional string accountLid = 49;</code>
     */
    protected $accountLid = null;
    /**
     * Generated from protobuf field <code>optional bool limitSharing = 50;</code>
     */
    protected $limitSharing = null;
    /**
     * Generated from protobuf field <code>optional int64 limitSharingSettingTimestamp = 51;</code>
     */
    protected $limitSharingSettingTimestamp = null;
    /**
     * Generated from protobuf field <code>optional .proto.LimitSharing.TriggerType limitSharingTrigger = 52;</code>
     */
    protected $limitSharingTrigger = null;
    /**
     * Generated from protobuf field <code>optional bool limitSharingInitiatedByMe = 53;</code>
     */
    protected $limitSharingInitiatedByMe = null;
    /**
     * Generated from protobuf field <code>optional bool maibaAiThreadEnabled = 54;</code>
     */
    protected $maibaAiThreadEnabled = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $id
     *     @type \PhpWA\Protocol\Proto\HistorySyncMsg[] $messages
     *     @type string $newJid
     *     @type string $oldJid
     *     @type int|string $lastMsgTimestamp
     *     @type int $unreadCount
     *     @type bool $readOnly
     *     @type bool $endOfHistoryTransfer
     *     @type int $ephemeralExpiration
     *     @type int|string $ephemeralSettingTimestamp
     *     @type int $endOfHistoryTransferType
     *     @type int|string $conversationTimestamp
     *     @type string $name
     *     @type string $pHash
     *     @type bool $notSpam
     *     @type bool $archived
     *     @type \PhpWA\Protocol\Proto\DisappearingMode $disappearingMode
     *     @type int $unreadMentionCount
     *     @type bool $markedAsUnread
     *     @type \PhpWA\Protocol\Proto\GroupParticipant[] $participant
     *     @type string $tcToken
     *     @type int|string $tcTokenTimestamp
     *     @type string $contactPrimaryIdentityKey
     *     @type int $pinned
     *     @type int|string $muteEndTime
     *     @type \PhpWA\Protocol\Proto\WallpaperSettings $wallpaper
     *     @type int $mediaVisibility
     *     @type int|string $tcTokenSenderTimestamp
     *     @type bool $suspended
     *     @type bool $terminated
     *     @type int|string $createdAt
     *     @type string $createdBy
     *     @type string $description
     *     @type bool $support
     *     @type bool $isParentGroup
     *     @type string $parentGroupId
     *     @type bool $isDefaultSubgroup
     *     @type string $displayName
     *     @type string $pnJid
     *     @type bool $shareOwnPn
     *     @type bool $pnhDuplicateLidThread
     *     @type string $lidJid
     *     @type string $username
     *     @type string $lidOriginType
     *     @type int $commentsCount
     *     @type bool $locked
     *     @type int $systemMessageToInsert
     *     @type bool $capiCreatedGroup
     *     @type string $accountLid
     *     @type bool $limitSharing
     *     @type int|string $limitSharingSettingTimestamp
     *     @type int $limitSharingTrigger
     *     @type bool $limitSharingInitiatedByMe
     *     @type bool $maibaAiThreadEnabled
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional string id = 1;</code>
     * @return string
     */
    public function getId()
    {
        return isset($this->id) ? $this->id : '';
    }

    public function hasId()
    {
        return isset($this->id);
    }

    public function clearId()
    {
        unset($this->id);
    }

    /**
     * Generated from protobuf field <code>optional string id = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkString($var, True);
        $this->id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.HistorySyncMsg messages = 2;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\HistorySyncMsg>
     */
    public function getMessages()
    {
        return $this->messages;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.HistorySyncMsg messages = 2;</code>
     * @param \PhpWA\Protocol\Proto\HistorySyncMsg[] $var
     * @return $this
     */
    public function setMessages($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\HistorySyncMsg::class);
        $this->messages = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string newJid = 3;</code>
     * @return string
     */
    public function getNewJid()
    {
        return isset($this->newJid) ? $this->newJid : '';
    }

    public function hasNewJid()
    {
        return isset($this->newJid);
    }

    public function clearNewJid()
    {
        unset($this->newJid);
    }

    /**
     * Generated from protobuf field <code>optional string newJid = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setNewJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->newJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string oldJid = 4;</code>
     * @return string
     */
    public function getOldJid()
    {
        return isset($this->oldJid) ? $this->oldJid : '';
    }

    public function hasOldJid()
    {
        return isset($this->oldJid);
    }

    public function clearOldJid()
    {
        unset($this->oldJid);
    }

    /**
     * Generated from protobuf field <code>optional string oldJid = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setOldJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->oldJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 lastMsgTimestamp = 5;</code>
     * @return int|string
     */
    public function getLastMsgTimestamp()
    {
        return isset($this->lastMsgTimestamp) ? $this->lastMsgTimestamp : 0;
    }

    public function hasLastMsgTimestamp()
    {
        return isset($this->lastMsgTimestamp);
    }

    public function clearLastMsgTimestamp()
    {
        unset($this->lastMsgTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 lastMsgTimestamp = 5;</code>
     * @param int|string $var
     * @return $this
     */
    public function setLastMsgTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->lastMsgTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 unreadCount = 6;</code>
     * @return int
     */
    public function getUnreadCount()
    {
        return isset($this->unreadCount) ? $this->unreadCount : 0;
    }

    public function hasUnreadCount()
    {
        return isset($this->unreadCount);
    }

    public function clearUnreadCount()
    {
        unset($this->unreadCount);
    }

    /**
     * Generated from protobuf field <code>optional uint32 unreadCount = 6;</code>
     * @param int $var
     * @return $this
     */
    public function setUnreadCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->unreadCount = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool readOnly = 7;</code>
     * @return bool
     */
    public function getReadOnly()
    {
        return isset($this->readOnly) ? $this->readOnly : false;
    }

    public function hasReadOnly()
    {
        return isset($this->readOnly);
    }

    public function clearReadOnly()
    {
        unset($this->readOnly);
    }

    /**
     * Generated from protobuf field <code>optional bool readOnly = 7;</code>
     * @param bool $var
     * @return $this
     */
    public function setReadOnly($var)
    {
        GPBUtil::checkBool($var);
        $this->readOnly = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool endOfHistoryTransfer = 8;</code>
     * @return bool
     */
    public function getEndOfHistoryTransfer()
    {
        return isset($this->endOfHistoryTransfer) ? $this->endOfHistoryTransfer : false;
    }

    public function hasEndOfHistoryTransfer()
    {
        return isset($this->endOfHistoryTransfer);
    }

    public function clearEndOfHistoryTransfer()
    {
        unset($this->endOfHistoryTransfer);
    }

    /**
     * Generated from protobuf field <code>optional bool endOfHistoryTransfer = 8;</code>
     * @param bool $var
     * @return $this
     */
    public function setEndOfHistoryTransfer($var)
    {
        GPBUtil::checkBool($var);
        $this->endOfHistoryTransfer = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 ephemeralExpiration = 9;</code>
     * @return int
     */
    public function getEphemeralExpiration()
    {
        return isset($this->ephemeralExpiration) ? $this->ephemeralExpiration : 0;
    }

    public function hasEphemeralExpiration()
    {
        return isset($this->ephemeralExpiration);
    }

    public function clearEphemeralExpiration()
    {
        unset($this->ephemeralExpiration);
    }

    /**
     * Generated from protobuf field <code>optional uint32 ephemeralExpiration = 9;</code>
     * @param int $var
     * @return $this
     */
    public function setEphemeralExpiration($var)
    {
        GPBUtil::checkUint32($var);
        $this->ephemeralExpiration = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 10;</code>
     * @return int|string
     */
    public function getEphemeralSettingTimestamp()
    {
        return isset($this->ephemeralSettingTimestamp) ? $this->ephemeralSettingTimestamp : 0;
    }

    public function hasEphemeralSettingTimestamp()
    {
        return isset($this->ephemeralSettingTimestamp);
    }

    public function clearEphemeralSettingTimestamp()
    {
        unset($this->ephemeralSettingTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 10;</code>
     * @param int|string $var
     * @return $this
     */
    public function setEphemeralSettingTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->ephemeralSettingTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Conversation.EndOfHistoryTransferType endOfHistoryTransferType = 11;</code>
     * @return int
     */
    public function getEndOfHistoryTransferType()
    {
        return isset($this->endOfHistoryTransferType) ? $this->endOfHistoryTransferType : 0;
    }

    public function hasEndOfHistoryTransferType()
    {
        return isset($this->endOfHistoryTransferType);
    }

    public function clearEndOfHistoryTransferType()
    {
        unset($this->endOfHistoryTransferType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Conversation.EndOfHistoryTransferType endOfHistoryTransferType = 11;</code>
     * @param int $var
     * @return $this
     */
    public function setEndOfHistoryTransferType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\Conversation\EndOfHistoryTransferType::class);
        $this->endOfHistoryTransferType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 conversationTimestamp = 12;</code>
     * @return int|string
     */
    public function getConversationTimestamp()
    {
        return isset($this->conversationTimestamp) ? $this->conversationTimestamp : 0;
    }

    public function hasConversationTimestamp()
    {
        return isset($this->conversationTimestamp);
    }

    public function clearConversationTimestamp()
    {
        unset($this->conversationTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 conversationTimestamp = 12;</code>
     * @param int|string $var
     * @return $this
     */
    public function setConversationTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->conversationTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string name = 13;</code>
     * @return string
     */
    public function getName()
    {
        return isset($this->name) ? $this->name : '';
    }

    public function hasName()
    {
        return isset($this->name);
    }

    public function clearName()
    {
        unset($this->name);
    }

    /**
     * Generated from protobuf field <code>optional string name = 13;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, True);
        $this->name = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string pHash = 14;</code>
     * @return string
     */
    public function getPHash()
    {
        return isset($this->pHash) ? $this->pHash : '';
    }

    public function hasPHash()
    {
        return isset($this->pHash);
    }

    public function clearPHash()
    {
        unset($this->pHash);
    }

    /**
     * Generated from protobuf field <code>optional string pHash = 14;</code>
     * @param string $var
     * @return $this
     */
    public function setPHash($var)
    {
        GPBUtil::checkString($var, True);
        $this->pHash = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool notSpam = 15;</code>
     * @return bool
     */
    public function getNotSpam()
    {
        return isset($this->notSpam) ? $this->notSpam : false;
    }

    public function hasNotSpam()
    {
        return isset($this->notSpam);
    }

    public function clearNotSpam()
    {
        unset($this->notSpam);
    }

    /**
     * Generated from protobuf field <code>optional bool notSpam = 15;</code>
     * @param bool $var
     * @return $this
     */
    public function setNotSpam($var)
    {
        GPBUtil::checkBool($var);
        $this->notSpam = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool archived = 16;</code>
     * @return bool
     */
    public function getArchived()
    {
        return isset($this->archived) ? $this->archived : false;
    }

    public function hasArchived()
    {
        return isset($this->archived);
    }

    public function clearArchived()
    {
        unset($this->archived);
    }

    /**
     * Generated from protobuf field <code>optional bool archived = 16;</code>
     * @param bool $var
     * @return $this
     */
    public function setArchived($var)
    {
        GPBUtil::checkBool($var);
        $this->archived = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 17;</code>
     * @return \PhpWA\Protocol\Proto\DisappearingMode|null
     */
    public function getDisappearingMode()
    {
        return $this->disappearingMode;
    }

    public function hasDisappearingMode()
    {
        return isset($this->disappearingMode);
    }

    public function clearDisappearingMode()
    {
        unset($this->disappearingMode);
    }

    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 17;</code>
     * @param \PhpWA\Protocol\Proto\DisappearingMode $var
     * @return $this
     */
    public function setDisappearingMode($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\DisappearingMode::class);
        $this->disappearingMode = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 unreadMentionCount = 18;</code>
     * @return int
     */
    public function getUnreadMentionCount()
    {
        return isset($this->unreadMentionCount) ? $this->unreadMentionCount : 0;
    }

    public function hasUnreadMentionCount()
    {
        return isset($this->unreadMentionCount);
    }

    public function clearUnreadMentionCount()
    {
        unset($this->unreadMentionCount);
    }

    /**
     * Generated from protobuf field <code>optional uint32 unreadMentionCount = 18;</code>
     * @param int $var
     * @return $this
     */
    public function setUnreadMentionCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->unreadMentionCount = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool markedAsUnread = 19;</code>
     * @return bool
     */
    public function getMarkedAsUnread()
    {
        return isset($this->markedAsUnread) ? $this->markedAsUnread : false;
    }

    public function hasMarkedAsUnread()
    {
        return isset($this->markedAsUnread);
    }

    public function clearMarkedAsUnread()
    {
        unset($this->markedAsUnread);
    }

    /**
     * Generated from protobuf field <code>optional bool markedAsUnread = 19;</code>
     * @param bool $var
     * @return $this
     */
    public function setMarkedAsUnread($var)
    {
        GPBUtil::checkBool($var);
        $this->markedAsUnread = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.GroupParticipant participant = 20;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\GroupParticipant>
     */
    public function getParticipant()
    {
        return $this->participant;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.GroupParticipant participant = 20;</code>
     * @param \PhpWA\Protocol\Proto\GroupParticipant[] $var
     * @return $this
     */
    public function setParticipant($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\GroupParticipant::class);
        $this->participant = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes tcToken = 21;</code>
     * @return string
     */
    public function getTcToken()
    {
        return isset($this->tcToken) ? $this->tcToken : '';
    }

    public function hasTcToken()
    {
        return isset($this->tcToken);
    }

    public function clearTcToken()
    {
        unset($this->tcToken);
    }

    /**
     * Generated from protobuf field <code>optional bytes tcToken = 21;</code>
     * @param string $var
     * @return $this
     */
    public function setTcToken($var)
    {
        GPBUtil::checkString($var, False);
        $this->tcToken = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 tcTokenTimestamp = 22;</code>
     * @return int|string
     */
    public function getTcTokenTimestamp()
    {
        return isset($this->tcTokenTimestamp) ? $this->tcTokenTimestamp : 0;
    }

    public function hasTcTokenTimestamp()
    {
        return isset($this->tcTokenTimestamp);
    }

    public function clearTcTokenTimestamp()
    {
        unset($this->tcTokenTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 tcTokenTimestamp = 22;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTcTokenTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->tcTokenTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes contactPrimaryIdentityKey = 23;</code>
     * @return string
     */
    public function getContactPrimaryIdentityKey()
    {
        return isset($this->contactPrimaryIdentityKey) ? $this->contactPrimaryIdentityKey : '';
    }

    public function hasContactPrimaryIdentityKey()
    {
        return isset($this->contactPrimaryIdentityKey);
    }

    public function clearContactPrimaryIdentityKey()
    {
        unset($this->contactPrimaryIdentityKey);
    }

    /**
     * Generated from protobuf field <code>optional bytes contactPrimaryIdentityKey = 23;</code>
     * @param string $var
     * @return $this
     */
    public function setContactPrimaryIdentityKey($var)
    {
        GPBUtil::checkString($var, False);
        $this->contactPrimaryIdentityKey = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 pinned = 24;</code>
     * @return int
     */
    public function getPinned()
    {
        return isset($this->pinned) ? $this->pinned : 0;
    }

    public function hasPinned()
    {
        return isset($this->pinned);
    }

    public function clearPinned()
    {
        unset($this->pinned);
    }

    /**
     * Generated from protobuf field <code>optional uint32 pinned = 24;</code>
     * @param int $var
     * @return $this
     */
    public function setPinned($var)
    {
        GPBUtil::checkUint32($var);
        $this->pinned = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 muteEndTime = 25;</code>
     * @return int|string
     */
    public function getMuteEndTime()
    {
        return isset($this->muteEndTime) ? $this->muteEndTime : 0;
    }

    public function hasMuteEndTime()
    {
        return isset($this->muteEndTime);
    }

    public function clearMuteEndTime()
    {
        unset($this->muteEndTime);
    }

    /**
     * Generated from protobuf field <code>optional uint64 muteEndTime = 25;</code>
     * @param int|string $var
     * @return $this
     */
    public function setMuteEndTime($var)
    {
        GPBUtil::checkUint64($var);
        $this->muteEndTime = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings wallpaper = 26;</code>
     * @return \PhpWA\Protocol\Proto\WallpaperSettings|null
     */
    public function getWallpaper()
    {
        return $this->wallpaper;
    }

    public function hasWallpaper()
    {
        return isset($this->wallpaper);
    }

    public function clearWallpaper()
    {
        unset($this->wallpaper);
    }

    /**
     * Generated from protobuf field <code>optional .proto.WallpaperSettings wallpaper = 26;</code>
     * @param \PhpWA\Protocol\Proto\WallpaperSettings $var
     * @return $this
     */
    public function setWallpaper($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\WallpaperSettings::class);
        $this->wallpaper = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaVisibility mediaVisibility = 27;</code>
     * @return int
     */
    public function getMediaVisibility()
    {
        return isset($this->mediaVisibility) ? $this->mediaVisibility : 0;
    }

    public function hasMediaVisibility()
    {
        return isset($this->mediaVisibility);
    }

    public function clearMediaVisibility()
    {
        unset($this->mediaVisibility);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MediaVisibility mediaVisibility = 27;</code>
     * @param int $var
     * @return $this
     */
    public function setMediaVisibility($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\MediaVisibility::class);
        $this->mediaVisibility = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 tcTokenSenderTimestamp = 28;</code>
     * @return int|string
     */
    public function getTcTokenSenderTimestamp()
    {
        return isset($this->tcTokenSenderTimestamp) ? $this->tcTokenSenderTimestamp : 0;
    }

    public function hasTcTokenSenderTimestamp()
    {
        return isset($this->tcTokenSenderTimestamp);
    }

    public function clearTcTokenSenderTimestamp()
    {
        unset($this->tcTokenSenderTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional uint64 tcTokenSenderTimestamp = 28;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTcTokenSenderTimestamp($var)
    {
        GPBUtil::checkUint64($var);
        $this->tcTokenSenderTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool suspended = 29;</code>
     * @return bool
     */
    public function getSuspended()
    {
        return isset($this->suspended) ? $this->suspended : false;
    }

    public function hasSuspended()
    {
        return isset($this->suspended);
    }

    public function clearSuspended()
    {
        unset($this->suspended);
    }

    /**
     * Generated from protobuf field <code>optional bool suspended = 29;</code>
     * @param bool $var
     * @return $this
     */
    public function setSuspended($var)
    {
        GPBUtil::checkBool($var);
        $this->suspended = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool terminated = 30;</code>
     * @return bool
     */
    public function getTerminated()
    {
        return isset($this->terminated) ? $this->terminated : false;
    }

    public function hasTerminated()
    {
        return isset($this->terminated);
    }

    public function clearTerminated()
    {
        unset($this->terminated);
    }

    /**
     * Generated from protobuf field <code>optional bool terminated = 30;</code>
     * @param bool $var
     * @return $this
     */
    public function setTerminated($var)
    {
        GPBUtil::checkBool($var);
        $this->terminated = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint64 createdAt = 31;</code>
     * @return int|string
     */
    public function getCreatedAt()
    {
        return isset($this->createdAt) ? $this->createdAt : 0;
    }

    public function hasCreatedAt()
    {
        return isset($this->createdAt);
    }

    public function clearCreatedAt()
    {
        unset($this->createdAt);
    }

    /**
     * Generated from protobuf field <code>optional uint64 createdAt = 31;</code>
     * @param int|string $var
     * @return $this
     */
    public function setCreatedAt($var)
    {
        GPBUtil::checkUint64($var);
        $this->createdAt = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string createdBy = 32;</code>
     * @return string
     */
    public function getCreatedBy()
    {
        return isset($this->createdBy) ? $this->createdBy : '';
    }

    public function hasCreatedBy()
    {
        return isset($this->createdBy);
    }

    public function clearCreatedBy()
    {
        unset($this->createdBy);
    }

    /**
     * Generated from protobuf field <code>optional string createdBy = 32;</code>
     * @param string $var
     * @return $this
     */
    public function setCreatedBy($var)
    {
        GPBUtil::checkString($var, True);
        $this->createdBy = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string description = 33;</code>
     * @return string
     */
    public function getDescription()
    {
        return isset($this->description) ? $this->description : '';
    }

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

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

    /**
     * Generated from protobuf field <code>optional string description = 33;</code>
     * @param string $var
     * @return $this
     */
    public function setDescription($var)
    {
        GPBUtil::checkString($var, True);
        $this->description = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool support = 34;</code>
     * @return bool
     */
    public function getSupport()
    {
        return isset($this->support) ? $this->support : false;
    }

    public function hasSupport()
    {
        return isset($this->support);
    }

    public function clearSupport()
    {
        unset($this->support);
    }

    /**
     * Generated from protobuf field <code>optional bool support = 34;</code>
     * @param bool $var
     * @return $this
     */
    public function setSupport($var)
    {
        GPBUtil::checkBool($var);
        $this->support = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isParentGroup = 35;</code>
     * @return bool
     */
    public function getIsParentGroup()
    {
        return isset($this->isParentGroup) ? $this->isParentGroup : false;
    }

    public function hasIsParentGroup()
    {
        return isset($this->isParentGroup);
    }

    public function clearIsParentGroup()
    {
        unset($this->isParentGroup);
    }

    /**
     * Generated from protobuf field <code>optional bool isParentGroup = 35;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsParentGroup($var)
    {
        GPBUtil::checkBool($var);
        $this->isParentGroup = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string parentGroupId = 37;</code>
     * @return string
     */
    public function getParentGroupId()
    {
        return isset($this->parentGroupId) ? $this->parentGroupId : '';
    }

    public function hasParentGroupId()
    {
        return isset($this->parentGroupId);
    }

    public function clearParentGroupId()
    {
        unset($this->parentGroupId);
    }

    /**
     * Generated from protobuf field <code>optional string parentGroupId = 37;</code>
     * @param string $var
     * @return $this
     */
    public function setParentGroupId($var)
    {
        GPBUtil::checkString($var, True);
        $this->parentGroupId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isDefaultSubgroup = 36;</code>
     * @return bool
     */
    public function getIsDefaultSubgroup()
    {
        return isset($this->isDefaultSubgroup) ? $this->isDefaultSubgroup : false;
    }

    public function hasIsDefaultSubgroup()
    {
        return isset($this->isDefaultSubgroup);
    }

    public function clearIsDefaultSubgroup()
    {
        unset($this->isDefaultSubgroup);
    }

    /**
     * Generated from protobuf field <code>optional bool isDefaultSubgroup = 36;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsDefaultSubgroup($var)
    {
        GPBUtil::checkBool($var);
        $this->isDefaultSubgroup = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string displayName = 38;</code>
     * @return string
     */
    public function getDisplayName()
    {
        return isset($this->displayName) ? $this->displayName : '';
    }

    public function hasDisplayName()
    {
        return isset($this->displayName);
    }

    public function clearDisplayName()
    {
        unset($this->displayName);
    }

    /**
     * Generated from protobuf field <code>optional string displayName = 38;</code>
     * @param string $var
     * @return $this
     */
    public function setDisplayName($var)
    {
        GPBUtil::checkString($var, True);
        $this->displayName = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string pnJid = 39;</code>
     * @return string
     */
    public function getPnJid()
    {
        return isset($this->pnJid) ? $this->pnJid : '';
    }

    public function hasPnJid()
    {
        return isset($this->pnJid);
    }

    public function clearPnJid()
    {
        unset($this->pnJid);
    }

    /**
     * Generated from protobuf field <code>optional string pnJid = 39;</code>
     * @param string $var
     * @return $this
     */
    public function setPnJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->pnJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool shareOwnPn = 40;</code>
     * @return bool
     */
    public function getShareOwnPn()
    {
        return isset($this->shareOwnPn) ? $this->shareOwnPn : false;
    }

    public function hasShareOwnPn()
    {
        return isset($this->shareOwnPn);
    }

    public function clearShareOwnPn()
    {
        unset($this->shareOwnPn);
    }

    /**
     * Generated from protobuf field <code>optional bool shareOwnPn = 40;</code>
     * @param bool $var
     * @return $this
     */
    public function setShareOwnPn($var)
    {
        GPBUtil::checkBool($var);
        $this->shareOwnPn = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool pnhDuplicateLidThread = 41;</code>
     * @return bool
     */
    public function getPnhDuplicateLidThread()
    {
        return isset($this->pnhDuplicateLidThread) ? $this->pnhDuplicateLidThread : false;
    }

    public function hasPnhDuplicateLidThread()
    {
        return isset($this->pnhDuplicateLidThread);
    }

    public function clearPnhDuplicateLidThread()
    {
        unset($this->pnhDuplicateLidThread);
    }

    /**
     * Generated from protobuf field <code>optional bool pnhDuplicateLidThread = 41;</code>
     * @param bool $var
     * @return $this
     */
    public function setPnhDuplicateLidThread($var)
    {
        GPBUtil::checkBool($var);
        $this->pnhDuplicateLidThread = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string lidJid = 42;</code>
     * @return string
     */
    public function getLidJid()
    {
        return isset($this->lidJid) ? $this->lidJid : '';
    }

    public function hasLidJid()
    {
        return isset($this->lidJid);
    }

    public function clearLidJid()
    {
        unset($this->lidJid);
    }

    /**
     * Generated from protobuf field <code>optional string lidJid = 42;</code>
     * @param string $var
     * @return $this
     */
    public function setLidJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->lidJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string username = 43;</code>
     * @return string
     */
    public function getUsername()
    {
        return isset($this->username) ? $this->username : '';
    }

    public function hasUsername()
    {
        return isset($this->username);
    }

    public function clearUsername()
    {
        unset($this->username);
    }

    /**
     * Generated from protobuf field <code>optional string username = 43;</code>
     * @param string $var
     * @return $this
     */
    public function setUsername($var)
    {
        GPBUtil::checkString($var, True);
        $this->username = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string lidOriginType = 44;</code>
     * @return string
     */
    public function getLidOriginType()
    {
        return isset($this->lidOriginType) ? $this->lidOriginType : '';
    }

    public function hasLidOriginType()
    {
        return isset($this->lidOriginType);
    }

    public function clearLidOriginType()
    {
        unset($this->lidOriginType);
    }

    /**
     * Generated from protobuf field <code>optional string lidOriginType = 44;</code>
     * @param string $var
     * @return $this
     */
    public function setLidOriginType($var)
    {
        GPBUtil::checkString($var, True);
        $this->lidOriginType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 commentsCount = 45;</code>
     * @return int
     */
    public function getCommentsCount()
    {
        return isset($this->commentsCount) ? $this->commentsCount : 0;
    }

    public function hasCommentsCount()
    {
        return isset($this->commentsCount);
    }

    public function clearCommentsCount()
    {
        unset($this->commentsCount);
    }

    /**
     * Generated from protobuf field <code>optional uint32 commentsCount = 45;</code>
     * @param int $var
     * @return $this
     */
    public function setCommentsCount($var)
    {
        GPBUtil::checkUint32($var);
        $this->commentsCount = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool locked = 46;</code>
     * @return bool
     */
    public function getLocked()
    {
        return isset($this->locked) ? $this->locked : false;
    }

    public function hasLocked()
    {
        return isset($this->locked);
    }

    public function clearLocked()
    {
        unset($this->locked);
    }

    /**
     * Generated from protobuf field <code>optional bool locked = 46;</code>
     * @param bool $var
     * @return $this
     */
    public function setLocked($var)
    {
        GPBUtil::checkBool($var);
        $this->locked = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.PrivacySystemMessage systemMessageToInsert = 47;</code>
     * @return int
     */
    public function getSystemMessageToInsert()
    {
        return isset($this->systemMessageToInsert) ? $this->systemMessageToInsert : 0;
    }

    public function hasSystemMessageToInsert()
    {
        return isset($this->systemMessageToInsert);
    }

    public function clearSystemMessageToInsert()
    {
        unset($this->systemMessageToInsert);
    }

    /**
     * Generated from protobuf field <code>optional .proto.PrivacySystemMessage systemMessageToInsert = 47;</code>
     * @param int $var
     * @return $this
     */
    public function setSystemMessageToInsert($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\PrivacySystemMessage::class);
        $this->systemMessageToInsert = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool capiCreatedGroup = 48;</code>
     * @return bool
     */
    public function getCapiCreatedGroup()
    {
        return isset($this->capiCreatedGroup) ? $this->capiCreatedGroup : false;
    }

    public function hasCapiCreatedGroup()
    {
        return isset($this->capiCreatedGroup);
    }

    public function clearCapiCreatedGroup()
    {
        unset($this->capiCreatedGroup);
    }

    /**
     * Generated from protobuf field <code>optional bool capiCreatedGroup = 48;</code>
     * @param bool $var
     * @return $this
     */
    public function setCapiCreatedGroup($var)
    {
        GPBUtil::checkBool($var);
        $this->capiCreatedGroup = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string accountLid = 49;</code>
     * @return string
     */
    public function getAccountLid()
    {
        return isset($this->accountLid) ? $this->accountLid : '';
    }

    public function hasAccountLid()
    {
        return isset($this->accountLid);
    }

    public function clearAccountLid()
    {
        unset($this->accountLid);
    }

    /**
     * Generated from protobuf field <code>optional string accountLid = 49;</code>
     * @param string $var
     * @return $this
     */
    public function setAccountLid($var)
    {
        GPBUtil::checkString($var, True);
        $this->accountLid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool limitSharing = 50;</code>
     * @return bool
     */
    public function getLimitSharing()
    {
        return isset($this->limitSharing) ? $this->limitSharing : false;
    }

    public function hasLimitSharing()
    {
        return isset($this->limitSharing);
    }

    public function clearLimitSharing()
    {
        unset($this->limitSharing);
    }

    /**
     * Generated from protobuf field <code>optional bool limitSharing = 50;</code>
     * @param bool $var
     * @return $this
     */
    public function setLimitSharing($var)
    {
        GPBUtil::checkBool($var);
        $this->limitSharing = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 limitSharingSettingTimestamp = 51;</code>
     * @return int|string
     */
    public function getLimitSharingSettingTimestamp()
    {
        return isset($this->limitSharingSettingTimestamp) ? $this->limitSharingSettingTimestamp : 0;
    }

    public function hasLimitSharingSettingTimestamp()
    {
        return isset($this->limitSharingSettingTimestamp);
    }

    public function clearLimitSharingSettingTimestamp()
    {
        unset($this->limitSharingSettingTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional int64 limitSharingSettingTimestamp = 51;</code>
     * @param int|string $var
     * @return $this
     */
    public function setLimitSharingSettingTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->limitSharingSettingTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.LimitSharing.TriggerType limitSharingTrigger = 52;</code>
     * @return int
     */
    public function getLimitSharingTrigger()
    {
        return isset($this->limitSharingTrigger) ? $this->limitSharingTrigger : 0;
    }

    public function hasLimitSharingTrigger()
    {
        return isset($this->limitSharingTrigger);
    }

    public function clearLimitSharingTrigger()
    {
        unset($this->limitSharingTrigger);
    }

    /**
     * Generated from protobuf field <code>optional .proto.LimitSharing.TriggerType limitSharingTrigger = 52;</code>
     * @param int $var
     * @return $this
     */
    public function setLimitSharingTrigger($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\LimitSharing\TriggerType::class);
        $this->limitSharingTrigger = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool limitSharingInitiatedByMe = 53;</code>
     * @return bool
     */
    public function getLimitSharingInitiatedByMe()
    {
        return isset($this->limitSharingInitiatedByMe) ? $this->limitSharingInitiatedByMe : false;
    }

    public function hasLimitSharingInitiatedByMe()
    {
        return isset($this->limitSharingInitiatedByMe);
    }

    public function clearLimitSharingInitiatedByMe()
    {
        unset($this->limitSharingInitiatedByMe);
    }

    /**
     * Generated from protobuf field <code>optional bool limitSharingInitiatedByMe = 53;</code>
     * @param bool $var
     * @return $this
     */
    public function setLimitSharingInitiatedByMe($var)
    {
        GPBUtil::checkBool($var);
        $this->limitSharingInitiatedByMe = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool maibaAiThreadEnabled = 54;</code>
     * @return bool
     */
    public function getMaibaAiThreadEnabled()
    {
        return isset($this->maibaAiThreadEnabled) ? $this->maibaAiThreadEnabled : false;
    }

    public function hasMaibaAiThreadEnabled()
    {
        return isset($this->maibaAiThreadEnabled);
    }

    public function clearMaibaAiThreadEnabled()
    {
        unset($this->maibaAiThreadEnabled);
    }

    /**
     * Generated from protobuf field <code>optional bool maibaAiThreadEnabled = 54;</code>
     * @param bool $var
     * @return $this
     */
    public function setMaibaAiThreadEnabled($var)
    {
        GPBUtil::checkBool($var);
        $this->maibaAiThreadEnabled = $var;

        return $this;
    }

}

