<?php
 
 
 

namespace PhpWA\Protocol\Proto\BotProgressIndicatorMetadata;

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




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


    protected $statusTitle = null;
    


    protected $statusBody = null;
    


    private $sourcesMetadata;
    


    protected $status = null;
    


    protected $isReasoning = null;
    


    protected $isEnhancedSearch = null;
    


    private $sections;

    














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

    



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

    public function hasStatusTitle()
    {
        return isset($this->statusTitle);
    }

    public function clearStatusTitle()
    {
        unset($this->statusTitle);
    }

    




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

        return $this;
    }

    



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

    public function hasStatusBody()
    {
        return isset($this->statusBody);
    }

    public function clearStatusBody()
    {
        unset($this->statusBody);
    }

    




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

        return $this;
    }

    



    public function getSourcesMetadata()
    {
        return $this->sourcesMetadata;
    }

    




    public function setSourcesMetadata($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningSearchSourcesMetadata::class);
        $this->sourcesMetadata = $arr;

        return $this;
    }

    



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

    public function hasStatus()
    {
        return isset($this->status);
    }

    public function clearStatus()
    {
        unset($this->status);
    }

    




    public function setStatus($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\PlanningStepStatus::class);
        $this->status = $var;

        return $this;
    }

    



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

    public function hasIsReasoning()
    {
        return isset($this->isReasoning);
    }

    public function clearIsReasoning()
    {
        unset($this->isReasoning);
    }

    




    public function setIsReasoning($var)
    {
        GPBUtil::checkBool($var);
        $this->isReasoning = $var;

        return $this;
    }

    



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

    public function hasIsEnhancedSearch()
    {
        return isset($this->isEnhancedSearch);
    }

    public function clearIsEnhancedSearch()
    {
        unset($this->isEnhancedSearch);
    }

    




    public function setIsEnhancedSearch($var)
    {
        GPBUtil::checkBool($var);
        $this->isEnhancedSearch = $var;

        return $this;
    }

    



    public function getSections()
    {
        return $this->sections;
    }

    




    public function setSections($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\BotProgressIndicatorMetadata\BotPlanningStepMetadata\BotPlanningStepSectionMetadata::class);
        $this->sections = $arr;

        return $this;
    }

}

