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

/**
 * OSB Route to Market
 *
 * @package    OSB
 * @category   Models
 * @author     Deon George
 * @copyright  (c) 2009-2013 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Model_RTM extends ORM_OSB {
	protected $_belongs_to = array(
		'account' => array(),
	);

	protected $_has_many = array(
		'customer' => array('model'=>'account','far_key'=>'id','foreign_key'=>'rtm_id'),
		'agent' => array('model'=>'rtm','far_key'=>'id','foreign_key'=>'parent_id'),
	);

	public function customers(Model_RTM $rtmo) {
		// If our RTM is NULL, then we are our only customer.
		if (is_null($rtmo->id))
			return (array(Auth::Instance()->get_user()));

		$result = array();

		foreach ($rtmo->agents_direct() as $artmo)
			$result = Arr::merge($result,$rtmo->customers($artmo));

		foreach ($rtmo->customers_direct() as $ao)
			array_push($result,$ao);

		return $result;
	}

	public function agents_direct() {
		return $this->agent->find_all();
	}

	public function customers_direct() {
		return $this->customer->find_all();
	}
}
?>