<?php
 
 
 

namespace PhpWA\Protocol\Proto\Message;

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




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


    protected $paymentLinkMetadata = null;
    


    protected $urlMetadata = null;
    


    protected $fbExperimentId = null;
    


    protected $linkMediaDuration = null;
    


    protected $socialMediaPostType = null;
    


    protected $linkInlineVideoMuted = null;
    


    protected $videoContentUrl = null;
    


    protected $musicMetadata = null;
    


    protected $videoContentCaption = null;

    
















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

    



    public function getPaymentLinkMetadata()
    {
        return $this->paymentLinkMetadata;
    }

    public function hasPaymentLinkMetadata()
    {
        return isset($this->paymentLinkMetadata);
    }

    public function clearPaymentLinkMetadata()
    {
        unset($this->paymentLinkMetadata);
    }

    




    public function setPaymentLinkMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\PaymentLinkMetadata::class);
        $this->paymentLinkMetadata = $var;

        return $this;
    }

    



    public function getUrlMetadata()
    {
        return $this->urlMetadata;
    }

    public function hasUrlMetadata()
    {
        return isset($this->urlMetadata);
    }

    public function clearUrlMetadata()
    {
        unset($this->urlMetadata);
    }

    




    public function setUrlMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message\URLMetadata::class);
        $this->urlMetadata = $var;

        return $this;
    }

    



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

    public function hasFbExperimentId()
    {
        return isset($this->fbExperimentId);
    }

    public function clearFbExperimentId()
    {
        unset($this->fbExperimentId);
    }

    




    public function setFbExperimentId($var)
    {
        GPBUtil::checkUint32($var);
        $this->fbExperimentId = $var;

        return $this;
    }

    



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

    public function hasLinkMediaDuration()
    {
        return isset($this->linkMediaDuration);
    }

    public function clearLinkMediaDuration()
    {
        unset($this->linkMediaDuration);
    }

    




    public function setLinkMediaDuration($var)
    {
        GPBUtil::checkUint32($var);
        $this->linkMediaDuration = $var;

        return $this;
    }

    



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

    public function hasSocialMediaPostType()
    {
        return isset($this->socialMediaPostType);
    }

    public function clearSocialMediaPostType()
    {
        unset($this->socialMediaPostType);
    }

    




    public function setSocialMediaPostType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\Message\LinkPreviewMetadata\SocialMediaPostType::class);
        $this->socialMediaPostType = $var;

        return $this;
    }

    



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

    public function hasLinkInlineVideoMuted()
    {
        return isset($this->linkInlineVideoMuted);
    }

    public function clearLinkInlineVideoMuted()
    {
        unset($this->linkInlineVideoMuted);
    }

    




    public function setLinkInlineVideoMuted($var)
    {
        GPBUtil::checkBool($var);
        $this->linkInlineVideoMuted = $var;

        return $this;
    }

    



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

    public function hasVideoContentUrl()
    {
        return isset($this->videoContentUrl);
    }

    public function clearVideoContentUrl()
    {
        unset($this->videoContentUrl);
    }

    




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

        return $this;
    }

    



    public function getMusicMetadata()
    {
        return $this->musicMetadata;
    }

    public function hasMusicMetadata()
    {
        return isset($this->musicMetadata);
    }

    public function clearMusicMetadata()
    {
        unset($this->musicMetadata);
    }

    




    public function setMusicMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\EmbeddedMusic::class);
        $this->musicMetadata = $var;

        return $this;
    }

    



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

    public function hasVideoContentCaption()
    {
        return isset($this->videoContentCaption);
    }

    public function clearVideoContentCaption()
    {
        unset($this->videoContentCaption);
    }

    




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

        return $this;
    }

}

