Files
gustavoo-me/wp-content/plugins/fluent-crm/app/Models/Model.php
T
2026-07-23 22:56:30 -03:00

69 lines
1.6 KiB
PHP

<?php
namespace FluentCrm\App\Models;
use FluentCrm\Framework\Database\Orm\Model as BaseModel;
use FluentCrm\Framework\Support\Str;
class Model extends BaseModel
{
public function __construct($attributes = [])
{
parent::__construct($attributes);
}
public function scopeLatest($query, $field = 'created_at')
{
return $query->orderBy($field, 'desc');
}
public function scopeNewest($query, $field = 'created_at')
{
return $query->orderBy($field, 'asc');
}
public function getPerPage()
{
return (isset($_REQUEST['per_page'])) ? intval($_REQUEST['per_page']) : 15;
}
/**
* Get a fresh timestamp for the model.
*
* @return \DateTime
*/
public function freshTimestamp()
{
return new \FluentCrm\Framework\Support\DateTime(current_time('mysql'));
}
protected function serializeDate(\DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
public function getTimezone()
{
return wp_timezone();
}
protected function asDateTime($value)
{
if (is_string($value) && Str::contains($value, 'T')) {
return new \FluentCrm\Framework\Support\DateTime($value);
}
return parent::asDateTime($value);
}
protected function originalIsNumericallyEquivalent($key)
{
$current = $this->attributes[$key];
$original = $this->original[$key];
return is_numeric($current) && is_numeric($original) && strcmp((string) $current, (string) $original) === 0;
}
}