<?php
App::uses('AppModel', 'Model');
/**
 * Blacklist Model
 *
 * @property User $User
 */
class Blacklist extends AppModel {

/**
 * Display field
 *
 * @var string
 */
	public $displayField = 'phone';

/**
 * Modelo do arquivo csv (SMS)
 * 
 * Telefone
 */
	function import($filename, $user_id) {
	    
	    $row = 1;
	    $filedata = WWW_ROOT . 'uploads' . DS . $filename;
	    $handle = fopen($filedata, "r");
	    
	    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
	        
	       $num = count($data);	        
	        /*
	         * Validacao para saber se a primeira linha do arquivo bate com o 
	         * modelo
	         */
	        if (($row == 1) && ($num != 1)) {
                return "Falha: Arquivo Inválido para o modelo Selecionado!";
	        }
	         
	        if (($row >= 2) && ($data[0] != null) && (trim($data[0])!= "")) {
	        	$Blacklist = ClassRegistry::init('Blacklist');
    	        $Blacklist->create();
                $Blacklist->set('phone', $this->normalizePhone($data[0]));
                $Blacklist->set('user_id', $user_id);            
                $Blacklist->save();
	        }
	        $row++;
	    }
	    
	    fclose($handle);

	    /*
	     * Remove o arquivo apos sua importacao, no padrao CakePHP 
	     * http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html
	     * @filedata e o nome do arquivo no padrao /dir/do/arquivo/nome.csv
	     */
	    $file = new File($filedata);
	    $file->delete();	    
	}	
	

/**
 * Limpa o telefone para caracteres válidos
 */
	private function normalizePhone($phone) {
	    return str_replace(" ", "", $phone);
	}

/**
 * belongsTo associations
 *
 * @var array
 */
	public $belongsTo = array(
		'User' => array(
			'className' => 'User',
			'foreignKey' => 'user_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		)
	);
}
