feat: initialize Dr-Panel project with patient file number support

This commit is contained in:
SajjadMahmoody
2026-05-06 02:18:23 +03:30
parent f8f174690a
commit 8b84d1780f
460 changed files with 113960 additions and 1 deletions
+63
View File
@@ -0,0 +1,63 @@
<?php
declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class SyncLog extends Model
{
public $timestamps = false;
protected $table = 'sync_log';
protected $fillable = [
'datetime',
'ip',
'user',
'table_name',
'action',
'record_id',
'changed_data',
];
protected $casts = [
'datetime' => 'datetime',
'changed_data' => 'array',
];
public static function lastSyncId(): int
{
return (int) static::where('action', 'synced')->max('id') ?: 0;
}
public static function changesSince(?string $since): \Illuminate\Database\Eloquent\Collection
{
$query = static::whereIn('action', ['created', 'updated', 'deleted'])
->orderBy('datetime')
->orderBy('id');
if ($since !== null && $since !== '') {
$query->where('datetime', '>', $since);
}
return $query->get();
}
protected function serializeDate(\DateTimeInterface $date): string
{
return $date->format('Y-m-d H:i:s');
}
public static function markSynced(string $ip): static
{
return static::create([
'datetime' => now(),
'ip' => $ip,
'user' => auth()->user()?->name ?? 'system',
'table_name' => '',
'action' => 'synced',
]);
}
}