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

/**
 * This class supports Services Traffic for ADSL
 *
 * @package    OSB
 * @subpackage Service
 * @category   Models
 * @author     Deon George
 * @copyright  (c) 2010 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Model_Service_Plugin_ADSL_Traffic extends ORMOSB {
	protected $_table_name = 'service__adsl_traffic';
	protected $_primary_key = 'service';
	protected $_disable_wild_select = TRUE;

	protected $_created_column = FALSE;
	protected $_updated_column = FALSE;

	public function rules() {
		return array(
			'site_id'=>array(
				array('ORMOSB::set_site_id',array(':validation',':model',':field')),
			),
		);
	}

	public function traffic(Model_Product_Plugin_ADSL $plan) {
		// Roll up the charges according to the product plan configuration
		return ADSL::allowance(array(
			'base_down_peak'=>is_null($plan->base_down_peak) ? NULL : $this->down_peak,
			'base_down_offpeak'=>is_null($plan->base_down_offpeak) ? NULL : $this->down_offpeak,
			'base_up_peak'=>is_null($plan->base_up_peak) ? NULL : $this->up_peak,
			'base_up_offpeak'=>is_null($plan->base_up_offpeak) ? NULL : $this->up_offpeak,
			'extra_down_peak'=>$plan->extra_down_peak,
			'extra_down_offpeak'=>$plan->extra_down_offpeak,
			'extra_up_peak'=>$plan->extra_up_peak,
			'extra_up_offpeak'=>$plan->extra_up_offpeak,
		));
	}
}
?>
