<?php

abstract class Model {
    
    protected 
$data = array();
    public 
$mandatoryFields = array();
    
    public function 
getLabelData() { return $this->data; }
    
//    public function get($key) {
//        if (array_key_exists($key, $this->data)) {
//            return $this->data[$key];
//        } else {
//            $bt = debug_backtrace(); $backtraceFlat = '['.__CLASS__.'::'.__FUNCTION__.' / line '.__LINE__.' ] [caller: '.$bt[0]['file'].' / line '.$bt[0]['line'].']';
//            Errors::log('invalid data array key: "'.$key.'" '.$backtraceFlat);
//            return '';
//        }
//    }
    
    
public static function getInvalidFields($model$data) {
        
$mandatoryFields $model->mandatoryFields;
        
$invalidFields = array();
        foreach (
$mandatoryFields as $mandatoryField) {
            
$isInvalid true;
            if (isset(
$data[$mandatoryField->name])) {
                switch (
$mandatoryField->type) {
                    case 
'notEmpty':
                        if (!empty(
$data[$mandatoryField->name])) { $isInvalid false; }
                    case 
'not0':
                        if (((int)
$data[$mandatoryField->name]) > 0) { $isInvalid false; }
                }
            }
            if (
$isInvalid) {
                
$invalidFields[] = $mandatoryField->name;
            }
        }
        return 
$invalidFields;
    }
    
    public static function 
getSqlFromListconfig($defaultOrderBy$listmodule) {
        
$orderBy $defaultOrderBy;
        if (
$sortField Session::getInstance()->getListConfig('sortField'null$listmodule)) {
            
$orderBy ' order by '.$sortField;
            if (
$sortMode Session::getInstance()->getListConfig('sortMode'null$listmodule)) {
                
$orderBy .= ' '.$sortMode;
            }
        }
        return 
$orderBy;
    }
}