Files
newznab-tmux/app/Models/SignupStat.php
T
2025-10-26 22:12:10 +01:00

41 lines
1.1 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class SignupStat extends Model
{
use HasFactory;
protected $guarded = [];
public static function insertUsersByMonth(): void
{
$users = User::query()
->whereNotNull('created_at')
->where('created_at', '<>', '0000-00-00 00:00:00')
->selectRaw("DATE_FORMAT(created_at, '%Y-%m-01') as sort_date, DATE_FORMAT(created_at, '%M %Y') as mth, COUNT(id) as num")
->groupBy(['sort_date', 'mth'])
->orderByDesc('sort_date')
->get();
foreach ($users as $user) {
self::updateOrCreate(
['month' => $user->mth],
['signups' => $user->num, 'sort_date' => $user->sort_date]
);
}
}
public static function getUsersByMonth(): array
{
return self::query()
->select(['month', 'signups'])
->orderByDesc('sort_date')
->get()
->toArray();
}
}