This commit is contained in:
pushrbx 2024-01-17 23:41:28 +00:00 committed by GitHub
parent bb71a7a9eb
commit 9fc37e9435
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -120,32 +120,34 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe
?string $premiered = null
): EloquentBuilder
{
// $queryable = $this->queryable(true)->whereBetween("aired.from", [
// $from->toAtomString(),
// $to->modify("last day of this month")->toAtomString()
// ]);
/** @noinspection PhpParamsInspection */
$queryable = $this->queryable(true);
if ($premiered !== null) {
$queryable = $queryable
->where("premiered", null)
->orWhere("premiered", $premiered);
}
$airedFilter = ["aired.from" => [
'$gte' => $from->toAtomString(),
'$lte' => $to->modify("last day of this month")->toAtomString()
]];
$queryable = $queryable
->whereRaw([
"aired.from" => [
'$gte' => $from->toAtomString(),
'$lte' => $to->modify("last day of this month")->toAtomString()
]
]);
$finalFilter = [];
if ($premiered !== null) {
$finalFilter["$or"] = [
["premiered" => $premiered],
[
"premiered" => null,
...$airedFilter
]
];
} else {
$finalFilter = array_merge($finalFilter, $airedFilter);
}
if (!is_null($type)) {
$queryable = $queryable->where("type", $type->label);
$finalFilter["type"] = $type->label;
}
$queryable = $queryable->whereRaw($finalFilter);
return $queryable->orderBy("members", "desc");
}