<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

<?

require_once 'util.php';

class Usuario extends Doctrine_Record
{
	function setTableDefinition()
	{
		$this->setTableName('saude.usuario');
		$this->hasColumn('login','string',NULL, array('notblank','notnull','unique'));
		$this->hasColumn('senha','string',NULL, array('notblank','notnull'));
		$this->hasColumn('idunidade','integer');
		$this->hasColumn('idtipo','integer',NULL,array('notnull'));
	}

	function validate()
	{
		trim_string_columns($this);

		$erros = array();

		if($this->idtipo!=TipoUsuario::ADMINISTRADOR && !$this->idunidade)
			$erros[] = 'O usuário deve estar associado a uma unidade de saúde';
		if(!$this->login)
			$erros[] = 'O nome do usuário deve ser preenchido';
		if(!$this->senha)
			$erros[] = 'A senha do usuário deve ser preenchida';

		if($erros)
			throw new Exception(implode("\n",$erros));
	}

    function setUp()
    {
		$this->hasOne('Unidade as unidade',
			array('local'=>'idunidade',
			      'foreign'=>'id'));

		$this->hasOne('TipoUsuario as tipo',
			array('local'=>'idtipo',
			      'foreign'=>'id'));
	}
};

?>
