<?php

class HistoricoAlteracaoScripts extends GxActiveRecord
{
    const TIPO_INCLUSAO = 1;
    const TIPO_ALTERACAO = 2;
    const TIPO_EXCLUSAO = 3;

    public $tiposAlteracao = array(
        self::TIPO_INCLUSAO => 'Inclusão',
        self::TIPO_ALTERACAO => 'Alteração',
        self::TIPO_EXCLUSAO => 'Exclusão',
    );

    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    public function tableName()
    {
        return 'historico_alteracao_scripts';
    }

    public function behaviors()
    {
        return array('datetimeI18NBehavior' => array('class' => 'ext.DateTimeI18NBehavior'));
    }

    public function rules()
    {
        return array(
            array(
                '
                    HIS_SCRIPT, HIS_IDSCRIPT, HIS_DATAHORA, HIS_ORDEMEXECUCAO,
                    HIS_IDFUNCIONARIO, HIS_TIPOALTERACAO
                ',
                'required'
            ),
            array('HIS_IDSCRIPT, HIS_ORDEMEXECUCAO, HIS_IDFUNCIONARIO', 'numerical', 'integerOnly' => true),
        );
    }

    public function relations()
    {
        return array(
            'Script' => array(self::BELONGS_TO, 'Scripts', 'HIS_IDSCRIPT', 'joinType'=>'LEFT JOIN'),
            'Funcionario' => array(self::BELONGS_TO, 'Funcionarios', 'HIS_IDFUNCIONARIO', 'joinType'=>'LEFT JOIN'),
            'Alteracoes' => array(self::HAS_MANY, 'HistoricoAlteracaoScripts', 'HIS_IDSCRIPT'),
        );
    }

    public function attributeLabels()
    {
        return array(
        );
    }

    public function getTipo($tipo = false)
    {
        if (!$tipo) {
            $tipo = $this->HIS_TIPOALTERACAO;
        }

        if (!in_array($tipo, $this->tiposAlteracao)) {
            return $this->tiposAlteracao[$tipo];
        }
        return false;
    }
}
