<?php

namespace Cielo\API30\Ecommerce;

use Cielo\API30\Ecommerce\CieloSerializable;
use Cielo\API30\Ecommerce\Legs;

/**
 * Class ReplyData
 *
 * @package Cielo\API30\Ecommerce
 */
class ReplyData implements \JsonSerializable, CieloSerializable
{
    /** @var string $addressInfoCode */
    private $addressInfoCode;

    /** @var string $factorCode */
    private $factorCode;

    /** @var string $score */
    private $score;

    /** @var string $binCountry */
    private $binCountry;

    /** @var string $cardIssuer */
    private $cardIssuer;

    /** @var string $cardScheme */
    private $cardScheme;

    /** @var string $hostSeverity */
    private $hostSeverity;

    /** @var string $internetInfoCode */
    private $internetInfoCode;

    /** @var string $ipRoutingMethod */
    private $ipRoutingMethod;

    /** @var string $scoreModelUsed */
    private $scoreModelUsed;

    /** @var string $casePriority */
    private $casePriority;

    /** @var string $providerTransactionId */
    private $providerTransactionId;  
    
    /** @var string $hotListInfoCode */
    private $hotListInfoCode;     

    /** @var string $identityInfoCode */
    private $identityInfoCode;        

    /** @var string $ipCity */
    private $ipCity;         
    
    /** @var string $ipCountry */
    private $ipCountry;   

    /** @var string $ipState */
    private $ipState;   
        
    /** @var string $velocityinfocode */
    private $velocityinfocode;           


    /**
     * Travel constructor.
     *
     * @param null
    */
    public function __construct()
    {
    }

    /**
     * @return array
    */
    public function jsonSerialize()
    {
        return get_object_vars($this);
    }

    /**
     * @param \stdClass $data
    */
    public function populate(\stdClass $data)
    {
        $this->addressInfoCode   = isset($data->AddressInfoCode) ? $data->AddressInfoCode : null;
        $this->factorCode        = isset($data->FactorCode) ? $data->FactorCode : null;
        $this->score             = isset($data->Score) ? $data->Score : null;
        $this->binCountry        = isset($data->BinCountry) ? $data->BinCountry : null;
        $this->cardIssuer        = isset($data->CardIssuer) ? $data->CardIssuer : null;
        $this->cardScheme        = isset($data->CardScheme) ? $data->CardScheme : null;
        $this->hostSeverity      = isset($data->HostSeverity) ? $data->HostSeverity : null;
        $this->internetInfoCode  = isset($data->InternetInfoCode) ? $data->InternetInfoCode : null;
        $this->ipRoutingMethod   = isset($data->IpRoutingMethod) ? $data->IpRoutingMethod : null;
        $this->scoreModelUsed    = isset($data->ScoreModelUsed) ? $data->ScoreModelUsed : null;
        $this->casePriority      = isset($data->CasePriority) ? $data->CasePriority : null;
        $this->providerTransactionId = isset($data->providertransactionid) ? $data->providertransactionid : null;
        $this->hotListInfoCode   = isset($data->HotListInfoCode) ? $data->HotListInfoCode : null;     
        $this->identityInfoCode  = isset($data->IdentityInfoCode) ? $data->IdentityInfoCode : null;        
        $this->ipCity            = isset($data->IpCity) ? $data->IpCity : null;         
        $this->ipCountry         = isset($data->IpCountry) ? $data->IpCountry : null;   
        $this->ipState           = isset($data->IpState) ? $data->IpState : null;   
        $this->velocityinfocode  = isset($data->velocityinfocode) ? $data->velocityinfocode : null;           
    }

    /**
     * @return mixed
    */
    public function getAddressInfoCode()
    {
        return $this->addressInfoCode;
    }

    /**
     * @param $addressInfoCode
     *
     * @return $this
    */
    public function setAddressInfoCode($addressInfoCode)
    {
        $this->addressInfoCode = $addressInfoCode;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getFactorCode()
    {
        return $this->factorCode;
    }

    /**
     * @param $factorCode
     *
     * @return $this
    */
    public function setFactorCode($factorCode)
    {
        $this->factorCode = $factorCode;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getScore()
    {
        return $this->score;
    }

    /**
     * @param $score
     *
     * @return $this
    */
    public function setScore($score)
    {
        $this->score = $score;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getBinCountry()
    {
        return $this->binCountry;
    }

    /**
     * @param $binCountry
     *
     * @return $this
    */
    public function setBinCountry($binCountry)
    {
        $this->binCountry = $binCountry;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getCardIssuer()
    {
        return $this->cardIssuer;
    }

    /**
     * @param $cardIssuer
     *
     * @return $this
    */
    public function setCardIssuer($cardIssuer)
    {
        $this->cardIssuer = $cardIssuer;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getCardScheme()
    {
        return $this->cardScheme;
    }

    /**
     * @param $cardScheme
     *
     * @return $this
    */
    public function setCardScheme($cardScheme)
    {
        $this->cardScheme = $cardScheme;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getHostSeverity()
    {
        return $this->hostSeverity;
    }

    /**
     * @param $hostSeverity
     *
     * @return $this
    */
    public function setHostSeverity($hostSeverity)
    {
        $this->hostSeverity = $hostSeverity;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getInternetInfoCode()
    {
        return $this->internetInfoCode;
    }

    /**
     * @param $internetInfoCode
     *
     * @return $this
    */
    public function setInternetInfoCode($internetInfoCode)
    {
        $this->internetInfoCode = $internetInfoCode;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getIpRoutingMethod()
    {
        return $this->ipRoutingMethod;
    }

    /**
     * @param $ipRoutingMethod
     *
     * @return $this
    */
    public function setIpRoutingMethod($ipRoutingMethod)
    {
        $this->ipRoutingMethod = $ipRoutingMethod;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getScoreModelUsed()
    {
        return $this->scoreModelUsed;
    }

    /**
     * @param $scoreModelUsed
     *
     * @return $this
    */
    public function setScoreModelUsed($scoreModelUsed)
    {
        $this->scoreModelUsed = $scoreModelUsed;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getCasePriority()
    {
        return $this->casePriority;
    }

    /**
     * @param $casePriority
     *
     * @return $this
    */
    public function setCasePriority($casePriority)
    {
        $this->casePriority = $casePriority;

        return $this;
    }

    /**
     * @return mixed
    */
    public function getProviderTransactionId()
    {
        return $this->providerTransactionId;
    }

    /**
     * @param $providerTransactionId
     *
     * @return $this
    */
    public function setProviderTransactionId($providerTransactionId)
    {
        $this->providerTransactionId = $providerTransactionId;

        return $this;
    }  
    
    /**
     * @return mixed
    */
    public function getHotListInfoCode()
    {
        return $this->hotListInfoCode;
    }

    /**
     * @param $hotListInfoCode
     *
     * @return $this
    */
    public function setHotListInfoCode($hotListInfoCode)
    {
        $this->hotListInfoCode = $hotListInfoCode;

        return $this;
    }      

    /**
     * @return mixed
    */
    public function getIdentityInfoCode()
    {
        return $this->identityInfoCode;
    }

    /**
     * @param $identityInfoCode
     *
     * @return $this
    */
    public function setIdentityInfoCode($identityInfoCode)
    {
        $this->identityInfoCode = $identityInfoCode;

        return $this;
    }     
       
    /**
     * @return mixed
    */
    public function getIpCity()
    {
        return $this->ipCity;
    }

    /**
     * @param $ipCity
     *
     * @return $this
    */
    public function setIpCity($ipCity)
    {
        $this->ipCity = $ipCity;

        return $this;
    }         
    
    /**
     * @return mixed
    */
    public function getIpCountry()
    {
        return $this->ipCountry;
    }

    /**
     * @param $ipCountry
     *
     * @return $this
    */
    public function setIpCountry($ipCountry)
    {
        $this->ipCountry = $ipCountry;

        return $this;
    }       
    
    /**
     * @return mixed
    */
    public function getIpState()
    {
        return $this->ipState;
    }

    /**
     * @param $ipState
     *
     * @return $this
    */
    public function setIpState($ipState)
    {
        $this->ipState = $ipState;

        return $this;
    }        
    
    /**
     * @return mixed
    */
    public function getVelocityinfocode()
    {
        return $this->velocityinfocode;
    }

    /**
     * @param $velocityinfocode
     *
     * @return $this
    */
    public function setVelocityinfocode($velocityinfocode)
    {
        $this->velocityinfocode = $velocityinfocode;

        return $this;
    }   
      
    
}
