<?php

Goweb::loadClass('Goweb_Db_Model');
Goweb::loadModel('Catalogo_Model_Produto');

/**
 * Goweb Sitemanager 5 Framework
 * @version    5.0.0
 * @category   Frontoffice
 * @package    Catalogo
 * @subpackage Model
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
 * @copyright  2009 (c) Goweb (http://www.goweb.pt)
*/
class Catalogo_Model_Ficheiro extends Goweb_Db_Model {
    
    /**
     * Nome da Tabela
     *
     * @var string
    */
    protected $_table = 'catalogo_ficheiro';
    
    /**
     * Chave Primaria
     * 
     * @var string
    */
    protected $_primary = 'id';
    
    /**
     * Campo que sera retornado se um
     * echo do objecto for chamado
     *
     * @var string
    */
    protected $_toString = 'titulo';

    
    /**
     * Metodo obrigatorio. Informa a definicao da tabela
     * referente ao Model em questao.
    */
    protected function _setup() {
        $config = new Goweb_Config(Goweb_Config_Ini::load(APPLICATION_PATH . DIRECTORY_SEPARATOR . 'Catalogo' . DIRECTORY_SEPARATOR . 'config.ini', 'base'));
        $this->initLang();
        $this->setSyncCols(array('ficheiro'));
        $this->produto_id = $this->ForeignKey(array('model' => 'Catalogo_Model_Produto', 'alias' => 'produto', 'label' => translate('Produto'), 'show' => false));
        $this->titulo = $this->Char(array('maxlength' => 200, 'notnull' => true, 'label' => translate('Titulo')));
        $this->ficheiro = $this->File(array('target'   => $config->files->target,
                                            'prefix'   => $config->files->prefix,
                                            'max_size' => $config->files->max_size,
                                            'types'    => $config->files->types));
        $this->actualizado = $this->Datetime(array('on_update' => '_currentDatetime', 'label' => translate('Actualizado em')));
        $this->criado = $this->Datetime(array('on_insert' => '_currentDatetime', 'label' => translate('Criado em')));
        $this->ip = $this->IpAddress(array('on_update' => '_remoteAddress', 'label' => translate('Endere&ccedil;o IP')));
    }
}