<?php

namespace App\Contracts;

use App\DTOs\CompetitorAd;
use Illuminate\Support\Collection;

interface CompetitorAdProvider
{
    /**
     * Search for competitor/company ads by name.
     *
     * @return Collection<int, CompetitorAd>
     */
    public function search(string $query, ?string $country = null, ?string $after = null, ?string $mediaType = null): Collection;

    /**
     * Search ads published by known Facebook Page IDs.
     *
     * @param  array<int, string>  $pageIds
     * @return Collection<int, CompetitorAd>
     */
    public function searchByPage(array $pageIds, ?string $country = null, ?string $after = null, ?string $mediaType = null): Collection;
}
