first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Actions\Lists;
use App\Models\Channel;
use App\Models\User;
use Common\Database\Datasource\Datasource;
use Illuminate\Pagination\AbstractPaginator;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
class ListsLoader
{
public function forUser(User $user, array $params): AbstractPaginator
{
$builder = $user->lists()->where('internal', false);
if (Auth::id() !== $user->id) {
$builder->where('public', true);
}
$pagination = (new Datasource($builder, $params))->paginate();
$pagination
->loadCount('items')
->load([
'items' => fn($query) => $query
->orderBy('order')
->where('order', '<=', 4)
->compact(),
])
->transform(function (Channel $list) {
$list->description = Str::limit($list->description, 80);
return $list;
});
return $pagination;
}
public function allLists(array $params): AbstractPaginator
{
$builder = Channel::where('type', 'list')
->where('internal', false)
->with('user');
$pagination = (new Datasource($builder, $params))->paginate();
$pagination->loadCount('items');
$pagination->transform(function (Channel $list) {
$list->description = Str::limit($list->description, 80);
return $list;
});
return $pagination;
}
}