File: /var/www/heifetz/heifetz-app/models/Tests.php
<?php
namespace Models;
use Core\DbLib\DbModel;
use Core\Models\CoreHelper;
use Traits\ModelGetQuery;
/**
* @property int $id
* @property string $name
* @property string $log
* @property int $errors
* @property string $created_at
* @property int $company_id
*/
class Tests extends DbModel
{
use ModelGetQuery;
protected static bool $hasCompanyRelation = true;
static string $tableName = 'tests';
public static function getFresh()
{
return self::getQuery()->where('created_at::date = ?', date('Y-m-d'))->fetchAll();
}
public static function add($name, $logs)
{
$logs = is_array($logs) ? $logs : [$logs];
return self::create(
[
'name' => $name,
'errors' => count($logs),
'log' => join(PHP_EOL, $logs),
'created_at' => date('Y-m-d H:i:s'),
'company_id' => CoreHelper::$companyId,
]
);
}
public static function merge($name, $logs)
{
/** @var self $test */
$test = self::getQuery()->where('name = ?', $name)->where('created_at::date = ?', date('Y-m-d'))->fetchRow();
if (empty($test)) {
return self::add($name, $logs);
}
$logs = is_array($logs) ? $logs : [$logs];
$logs = array_merge(explode(PHP_EOL, $test->log), $logs);
self::update(
[
'errors' => count($logs),
'log' => join(PHP_EOL, $logs),
'created_at' => date('Y-m-d H:i:s'),
],
['id' => $test->id]
);
return $test->id;
}
}