optimizations
This commit is contained in:
24
app/Services/CollectionPlacementService.php
Normal file
24
app/Services/CollectionPlacementService.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\CollectionSurfacePlacement;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class CollectionPlacementService
|
||||
{
|
||||
public function activePlacementsForSurface(string $surfaceKey)
|
||||
{
|
||||
$now = Carbon::now();
|
||||
return CollectionSurfacePlacement::where('surface_key', $surfaceKey)
|
||||
->where('is_active', true)
|
||||
->where(function ($q) use ($now) {
|
||||
$q->whereNull('starts_at')->orWhere('starts_at', '<=', $now);
|
||||
})
|
||||
->where(function ($q) use ($now) {
|
||||
$q->whereNull('ends_at')->orWhere('ends_at', '>=', $now);
|
||||
})
|
||||
->orderByDesc('priority')
|
||||
->get();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user