<?php

namespace App\ViewModels\PagSeguro\PagSeguroResponseViewModel;

use App\Utils\Builder;

class PagSeguroCardViewModelBuilder implements Builder {
	protected $brand;
	protected $first_digits;
	protected $last_digits;
	protected $exp_month;
	protected $exp_year;
	protected $holder;
	protected $store;

	public function build(): PagSeguroCardViewModel {

		$obj = new PagSeguroCardViewModel();

		$obj->setBrand( $this->brand );
		$obj->setFirstDigits( $this->first_digits );
		$obj->setLastDigits( $this->last_digits );
		$obj->setExpMonth( $this->exp_month );
		$obj->setExpYear( $this->exp_year );
		$obj->setHolder( $this->holder );
		$obj->setStore( $this->store );

		return $obj;

	}

	/**
	 *
	 * @param mixed $brand
	 */
	public function setBrand($brand): PagSeguroCardViewModelBuilder {

		$this->brand = $brand;
		return $this;

	}

	/**
	 *
	 * @param mixed $first_digits
	 */
	public function setFirstDigits($first_digits): PagSeguroCardViewModelBuilder {

		$this->first_digits = $first_digits;
		return $this;

	}

	/**
	 *
	 * @param mixed $last_digits
	 */
	public function setLastDigits($last_digits): PagSeguroCardViewModelBuilder {

		$this->last_digits = $last_digits;
		return $this;

	}

	/**
	 *
	 * @param mixed $exp_month
	 */
	public function setExpMonth($exp_month): PagSeguroCardViewModelBuilder {

		$this->exp_month = $exp_month;
		return $this;

	}

	/**
	 *
	 * @param mixed $exp_year
	 */
	public function setExpYear($exp_year): PagSeguroCardViewModelBuilder {

		$this->exp_year = $exp_year;
		return $this;

	}

	/**
	 *
	 * @param mixed $holder
	 */
	public function setHolder($holder): PagSeguroCardViewModelBuilder {

		$this->holder = $holder;
		return $this;

	}

	/**
	 *
	 * @param mixed $store
	 */
	public function setStore($store): PagSeguroCardViewModelBuilder {

		$this->store = $store;
		return $this;

	}

}

