<?php

Goweb::loadClass('Goweb_Form_Generic_Model_Barebone');

/**
 * 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_Barebone extends Goweb_Form_Generic_Model_Barebone {
    /**
     * Nome do módulo
     *
     * @var string
     */
    protected $_moduleDir = 'Catalogo';

    /**
     * Model a ser usado neste módulo
     *
     * @var string
     */
    protected $_moduleModel = 'Catalogo_Model_Produto';

    /**
     * Model a ser usado neste módulo para os elementos
     *
     * @var string
     */
    protected $_moduleModelElement = 'Catalogo_Model_Element';

    /**
     * Nome do adapter a ser usado neste módulo
     *
     * @var string
     */
    protected $_moduleAdapter = 'db';

    /**
     * Nome do elemento de ligação para este módulo
     *
     * @var string
     */
    protected $_moduleElement = 'ficha_id';

    /**
     * Nome do segundo elemento de ligação para este módulo (para as fichas)
     *
     * @var string
     */
    protected $_secondModuleElement = 'produto_id';

    /**
     * Model a ser usado neste módulo
     *
     * @var string
     */
    protected $_secondModuleModel = 'Catalogo_Model_Produto';

    /**
     * Nome da Tabela
     *
     * @var string
     */
    protected $_table = 'catalogo_element';

    /**
     * Nome da Tabela
     *
     * @var string
     */
    protected $_tableFicha = 'catalogo_ficha_id_';

    /**
     * Chave Primaria
     *
     * @var string
     */
    protected $_primary = 'id';

    /**
     * Campo que sera retornado se um
     * echo do objecto for chamado
     *
     * @var string
     */
    protected $_toString = 'criado';
    
    /**
     * Metodo obrigatorio. Informa a definicao da tabela
     * referente ao Model em questao.
    */
    protected function _setup() {
        $this->initLang();
        $this->setSyncCols(array('ficha_id'));
        $this->ficha_id = $this->ForeignKey(array('model' => 'Catalogo_Model_Ficha', 'alias' => 'ficha', 'label' => translate('Ficha')));
        $this->produto_id = $this->ForeignKey(array('model' => 'Catalogo_Model_Produto', 'alias' => 'produto', 'label' => translate('Produto')));
        $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'));
    }
}