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

/**
 * @package    OSB
 * @subpackage Modules
 * @category   Models
 * @author     Deon George
 * @copyright  (c) 2010 Deon George
 * @license    http://dev.leenooks.net/license.html
 */
class Model_Record_Id extends ORMOSB {
	protected $_primary_key = 'module_id';

	// This module doesnt keep track of column updates automatically
	protected $_created_column = FALSE;
	protected $_updated_column = FALSE;

	// @todo we need $mid here, since if there is no record, we cant figure out the module that called us.
	public function next_id($mid) {
		if (is_null($this->id)) {
			$this->module_id = $mid;

			// We'll get the next ID as the MAX(id) of the table
			$mo = ORM::factory('module',$mid);

			$max = DB::select(array('MAX(id)','id'))
				->from($mo->name)
				->where('site_id','=',Config::siteid());

			$this->id = $max->execute()->get('id');
		}

		$this->id++;

		if (! $this->save())
			throw new Koahan_Exception(_('Unable to increase ID for :table'),array(':table'=>$mid));

		return $this->id;
	}
}
?>
