<?php

namespace App\ViewModels\PagSeguro\PagSeguroNotificationCreditCard;

use App\Utils\Builder;

class PagSeguroNotificationViewModelBuilder implements Builder {
	protected $id;
	protected $reference_id;
	protected $created_at;
	protected $shipping;
	protected $items;
	protected $customer;
	protected $charges;
	protected $qr_code;
	protected $links;

	public function build(): PagSeguroNotificationViewModel {

		$obj = new PagSeguroNotificationViewModel();

		$obj->setId( $this->id );
		$obj->setReferenceId( $this->reference_id );
		$obj->setCreatedAt( $this->created_at );
		$obj->setShipping( $this->shipping );
		$obj->setItems( $this->items );
		$obj->setCustomer( $this->customer );
		$obj->setCharges( $this->charges );
		$obj->setQrCode( $this->qr_code );
		$obj->setLinks( $this->links );

		return $obj;

	}

	/**
	 *
	 * @param mixed $id
	 */
	public function setId($id): PagSeguroNotificationViewModelBuilder {

		$this->id = $id;
		return $this;

	}

	/**
	 *
	 * @param mixed $reference_id
	 */
	public function setReferenceId($reference_id): PagSeguroNotificationViewModelBuilder {

		$this->reference_id = $reference_id;
		return $this;

	}

	/**
	 *
	 * @param mixed $created_at
	 */
	public function setCreatedAt($created_at): PagSeguroNotificationViewModelBuilder {

		$this->created_at = $created_at;
		return $this;

	}

	/**
	 *
	 * @param mixed $shipping
	 */
	public function setShipping($shipping): PagSeguroNotificationViewModelBuilder {

		$this->shipping = $shipping;
		return $this;

	}

	/**
	 *
	 * @param mixed $items
	 */
	public function setItems($items): PagSeguroNotificationViewModelBuilder {

		$this->items = $items;
		return $this;

	}

	/**
	 *
	 * @param mixed $customer
	 */
	public function setCustomer($customer): PagSeguroNotificationViewModelBuilder {

		$this->customer = $customer;
		return $this;

	}

	/**
	 *
	 * @param mixed $charges
	 */
	public function setCharges($charges): PagSeguroNotificationViewModelBuilder {

		$this->charges = $charges;
		return $this;

	}

	/**
	 *
	 * @param mixed $qr_code
	 */
	public function setQrCode($qr_code): PagSeguroNotificationViewModelBuilder {

		$this->qr_code = $qr_code;
		return $this;

	}

	/**
	 *
	 * @param mixed $links
	 */
	public function setLinks($links): PagSeguroNotificationViewModelBuilder {

		$this->links = $links;
		return $this;

	}

}

