<?php

namespace WcElectronInvoice\Providers;

defined( 'ABSPATH' ) || die( 'Not allowed.' );

abstract class TaxOrderItemAbstract extends OrderItemAbstract{

	protected $order_item;

	abstract function get_id();

	function get_product_id() {
		return 0;
	}

	function get_product() {
		return null;
	}


	function get_sku() {
		return '';
	}

	function get_variation_id() {
		return 0;
	}

	function get_tax_class() {
		return '';
	}

	function get_data() {

		$data = [
			'id'           => $this->get_id(),
			'name'         => $this->get_name(),
			'product_id'   => $this->get_product_id(),
			'rate_code'    => $this->get_rate_code(),
			'rate_id'      => $this->get_rate_id(),
			'label'        => $this->get_label(),
			'rate_percent' => $this->get_rate_percent(),

		];

		return $data;
	}

	/**
	 * Get rate code (eg: IT-IMPOSTE-1)
	 *
	 * @return mixed
	 */
	abstract function get_rate_code();

	/**
	 * Get rate id (eg: 1)
	 * @return mixed
	 */
	abstract function get_rate_id();

	/**
	 * Get label (eg: Imposte)
	 * @return mixed
	 */
	abstract function get_label();

	/**
	 * Get rate percent (eg: 22)
	 * @return mixed
	 */
	abstract function get_rate_percent();


}
