<?php

class Sistema_Model_Telefones extends Agro_Db_Table_Abstract {
    const ID_CELULAR_PARTICULAR = 6;
    const ID_WHATSAPP = 9;

	protected $_schema = 'sistema';
	protected $_name = 'telefone';
	protected $_primary = 'id';
	
	public function save(array $data) {
		$Row = ($data['id'] ? $this->find($data['id'])->current() : $this->createRow());
		
		$Row->id_tipo_telefone = intval($data['id_tipo_telefone']);
		$Row->id_usuario = $data['id_usuario'];
		$Row->ds_numero = $data['ds_numero'];
		$Row->ds_ramal = $data['ds_ramal'];
		
		return $Row->save();
	}
	
	public function getData($where) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('t' => 'sistema.telefone'));
		$select->join(array('tt' => 'sistema.tipo_telefone'), 't.id_tipo_telefone = tt.id', 'tp_telefone');
		
		if (is_array($where)) {
			foreach ($where as $clause) {
				$field = $clause['field'];
				$operator = $clause['operator'];
				$value = $clause['value'];
				
				$select->where("$field $operator ?", $value);
			}
		} else {
			$select->where($where);
		}
		
		$select->order('tp_telefone');
		return $select;
	}
	
	public function setTelefoneUsuario($idUsuario, $telefones) {
		$this->_db->query("delete from sistema.telefone where id_usuario = $idUsuario");
		
		if (is_array($telefones)) {
			foreach ($telefones as $telefone) {
				
				$telefone['id_usuario'] = $idUsuario;
				$this->save($telefone);
			}
		}
	}
	
	public function getTelefoneUsuario($id) {
		$select = $this->select();
		$select->setIntegrityCheck(false);
		$select->from(array('t' => 'sistema.telefone'));
		$select->join(array('tt' => 'sistema.tipo_telefone'), 't.id_tipo_telefone = tt.id', 'tp_telefone');
		$select->where('t.fl_ativo = true');
		$select->where('t.id_usuario = ?', $id);
		
		return $this->fetchAll($select);
	}
	
	public function salvaTelefone($data) {
		$sql = "update sistema.telefone set ds_numero = '{$data['ds_numero']}' where id = {$data['id']}";
		$this->_db->query($sql);
	}
}