<?php

class Sistema_Model_Row_Usuario extends Agro_Db_Table_Row_Abstract {
	public function getDiasAteExpirarSenha(): int
	{
		$dataAtual = new DateTime('now');
		$dataBloqueio = new DateTime($this->dt_expiracao_senha);

		$intervalo = $dataBloqueio->diff($dataAtual);

		return $intervalo->days;
	}

	public function login() {
		switch ($this->tp_usuario) {
			case 'C':
				$Model = new Sistema_Model_Corretores();
				$Select = $Model->select()->setIntegrityCheck(false);
				$Select->from(array('u'=>'sistema.usuarios'), array('ds_nome_usuario','ds_senha'));
				$Select->join(array('c'=>'sistema.corretores'), 'u.id = c.id_usuario', array('ds_nome_fantasia as nome', 'ds_email'));
				$Select->where('u.id = ?', $this->id);
				$Row = $Model->fetchRow($Select);
				break;
			case 'P':
				$Model = new Sistema_Model_Prepostos();
				$Select = $Model->select()->setIntegrityCheck(false);
				$Select->from(array('u'=>'sistema.usuarios'), array('ds_nome_usuario','ds_senha'));
				$Select->join(array('p'=>'sistema.prepostos'), 'u.id = p.id_usuario', array('ds_nome_preposto as nome', 'ds_email'));
				$Select->where('u.id = ?', $this->id);
				$Row = $Model->fetchRow($Select);
				break;
            case 'A':
                $Model = new Sistema_Model_Assessorias();
                $Select = $Model->select()->setIntegrityCheck(false);
                $Select->from(array('u'=>'sistema.usuarios'), array('ds_nome_usuario','ds_senha'));
                $Select->join(array('a'=>'sistema.assessorias'), 'u.id = a.id_usuario', array('ds_nome_assessoria as nome', 'ds_email'));
                $Select->where('u.id = ?', $this->id);
                $Row = $Model->fetchRow($Select);
                break;
			case 'V':
			case 'M':
			case 'H':
			case 'F':
				$Model = new Sistema_Model_Funcionarios();
				$Select = $Model->select()->setIntegrityCheck(false);
				$Select->from(array('u'=>'sistema.usuarios'), array('ds_nome_usuario','ds_senha'));
				$Select->join(array('f'=>'sistema.funcionarios'), 'u.id = f.id_usuario', array('ds_nome_funcionario as nome', 'ds_email'));
				$Select->where('u.id = ?', $this->id);
				$Row = $Model->fetchRow($Select);
				break;
		}
		
		return $Row;
	}
	
}