<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This class supports ADSL products
 *
 * @package    OSB
 * @subpackage Product/ADSL
 * @category   Models
 * @author     Deon George
 * @copyright  (c) 2010 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Model_Product_Plugin_ADSL extends Model_Product_Plugin {
	protected $_table_name = 'adsl_plan';

	protected $_belongs_to = array(
		'adsl_supplier_plan'=>array(),
	);

	protected $_display_filters = array(
		'extra_down_peak'=>array(
			array('Tax::add',array(':value')),
			array('Currency::display',array(':value')),
		),
		'extra_down_offpeak'=>array(
			array('Tax::add',array(':value')),
			array('Currency::display',array(':value')),
		),
	);

	public function admin_update() {
		return '';
	}

	// Our required abstract methods
	public function feature_summary() {
		// @todo This view should render based on the the results of this::allowance();
		return View::factory('product/plugin/adsl/feature_summary')
			->set('po',$this);
	}

	/**
	 * Show the ADSL allowance as a peak/offpeak metric
	 */
	public function allowance($string=TRUE) {
		$output = ADSL::allowance(array(
			'base_down_peak'=>$this->base_down_peak,
			'base_down_offpeak'=>$this->base_down_offpeak,
			'base_up_peak'=>$this->base_up_peak,
			'base_up_offpeak'=>$this->base_up_offpeak,
			'extra_down_peak'=>$this->extra_down_peak,
			'extra_down_offpeak'=>$this->extra_down_offpeak,
			'extra_up_peak'=>$this->extra_up_peak,
			'extra_up_offpeak'=>$this->extra_up_offpeak,
			));

		return $string ? implode('/',$output) : $output;
	}
}
?>