<?php
namespace Model;
use Lib\Abstract_model;
use Lib\Validator;
class Contact extends Abstract_model
{
private static $table = 'contact';
private static $grid_fields = array('id', 'name', 'email', 'phone', 'created_on', 'updated_on');
protected static $relationships = array(
'category' => array(
'table' => 'contact_to_category',
'id_field' => 'contact_id',
'relation_field' => 'category_id',
'always_load' => true,
'always_save' => true
)
);
public static function get_table()
{
return self::$table;
}
public static function get_grid_fields()
{
return static::$grid_fields;
}
public static function is_invalid(Array $data)
{
$errors = array();
if (!Validator::is_date($data ['created_on'])) {
$errors ['created_on'] = true;
}
if (strlen(trim($data ['name'])) < 1 || strlen(trim($data ['name'])) > 128) {
$errors ['name'] = true;
}
if (!Validator::is_email($data ['email']) || strlen(trim($data ['email'])) < 1) {
$errors ['email'] = true;
}
if (trim(strlen($data ['phone'])) > 0 && !Validator::is_international_phone($data ['phone'])) {
$errors ['phone'] = true;
}
if (Category::count() > 0 && !isset($data['category'])) {
$errors['category'] = true;
}
return count($errors) == 0 ? false : $errors;
}
}