<?php

class Wiaas_Order_Item {

	public static function init() {

		add_filter( 'woocommerce_hidden_order_itemmeta', array( __CLASS__, 'hidden_order_item_meta' ) );
	}

	/**
	 * Mark extended properties for order as hidden
	 *
	 * @param array $hidden
	 *
	 * @return array
	 */
	public static function hidden_order_item_meta( $hidden ) {

		return array_merge( $hidden, array(
			//'_wiaas_payment_type',
			//'_wiaas_services_extra',
			'_wiaas_service_contract_period',
			'_wiaas_max_contract_period',
			'_wiaas_period_unit',
			//'_wiaas_recurrent_extra',
			'_wiaas_pay_period',
			'_wiaas_addon_items',
			'_wiaas_addon_for',
			'_wiaas_option_items',
			'_wiaas_option_for',
			'_wiaas_option_group_name',
			'_wiaas_standard_package',
			'_wiaas_documents',
			'_wiaas_category',
			'_wiaas_manufacturer_product_no',
			'_wiaas_supplier_product_no',
			'_wiaas_supplier_organization_id',
			'_wiaas_product_price',
			'_wiaas_earliest_installation_additional_days',
			'_wiaas_installation',
			'_wiaas_installation_date'
		) );
	}

	/**
	 * @param WC_Order_Item $order_item
	 *
	 * @return bool
	 */
	public static function is_standard_bundle($order_item) {

		$is_standard = $order_item->get_meta('_wiaas_standard_package');
		return ! empty($is_standard);
	}

	/**
	 * @param WC_Order_Item $order_item
	 *
	 * @return float
	 */
	public static function get_services_total($order_item) {
		$quantity = $order_item->get_quantity();

		return $quantity * floatval($order_item->get_meta('_wiaas_services_extra'));
	}

	/**
	 * @param WC_Order_Item $order_item
	 *
	 * @return float
	 */
	public static function get_recurrent_total($order_item) {
		$quantity = $order_item->get_quantity();

		return $quantity * floatval($order_item->get_meta('_wiaas_recurrent_extra'));
	}

	/**
	 * @param WC_Order_Item $order_item
	 *
	 * @return float
	 */
	public static function get_monthly_recurring_total($order_item) {

		return self::get_services_total($order_item) + self::get_recurrent_total($order_item);
	}

}

Wiaas_Order_Item::init();
