25 lines
692 B
PHP
25 lines
692 B
PHP
<?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();
|
|
}
|
|
}
|