<?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();
    }
}
