<?php

namespace App\Entities\PagSeguro\Order;

use App\Utils\Builder;

class PagSeguroTokenDataBuilder implements Builder {
	protected $requestor_id;
	protected $wallet;
	protected $cryptogram;
	protected $ecommerce_domain;
	protected $assurance_level;

	public function build(): PagSeguroTokenData {

		$obj = new PagSeguroTokenData();

		$obj->setAssuranceLevel( $this->assurance_level );
		$obj->setCryptogram( $this->cryptogram );
		$obj->setEcommerceDomain( $this->ecommerce_domain );
		$obj->setRequestorId( $this->requestor_id );
		$obj->setWallet( $this->wallet );

		return $obj;

	}

	/**
	 *
	 * @param mixed $requestor_id
	 */
	public function setRequestorId($requestor_id): PagSeguroTokenDataBuilder {

		$this->requestor_id = $requestor_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $wallet
	 */
	public function setWallet($wallet): PagSeguroTokenDataBuilder {

		$this->wallet = $wallet;
		return $this;

	}

	/**
	 *
	 * @param mixed $cryptogram
	 */
	public function setCryptogram($cryptogram): PagSeguroTokenDataBuilder {

		$this->cryptogram = $cryptogram;
		return $this;

	}

	/**
	 *
	 * @param mixed $ecommerce_domain
	 */
	public function setEcommerceDomain($ecommerce_domain): PagSeguroTokenDataBuilder {

		$this->ecommerce_domain = $ecommerce_domain;
		return $this;

	}

	/**
	 *
	 * @param mixed $assurance_level
	 */
	public function setAssuranceLevel($assurance_level): PagSeguroTokenDataBuilder {

		$this->assurance_level = $assurance_level;
		return $this;

	}

}

