Planleggere er klasser som gjør det mulig å planlegge meldinger med bestemte intervaller eller til bestemte tidspunkter.

## Enkel planlegger

Enkel planlegger for sending av meldinger til et bestemt tidspunkt.

```php
$scheduler = new Simple(new DateTime('2025-12-13 12:00'));
$scheduler->schedule($message);
```

## Kampanje

Med kampanjeplanleggeren kan du begynne å sende meldinger fra et bestemt tidspunkt med definerte intervaller. Du kan også angi hvor mange planlagte meldinger som skal sendes ut etter et gitt intervall.

```php
$scheduler = new Campaign(new DateTime('2025-12-13 12:00'));
$scheduler->restriction(100 /* messages */, 2, 'hours');
$scheduler->schedule($message);
```

Metoden `restriction()` godtar bare disse enhetene: `minute`, `minutes`,
`hour`, `hours`, `day`, `days`. Alle andre verdier ender med
`BulkGate\Sdk\InvalidStateException`.

Starttidspunktet endres med metoden `datetime()`, og `reset()` nullstiller
telleren for sendte grupper.

## Ingen planlegging

`BulkGate\Sdk\Scheduler\None` er en tom planlegger — den sender meldingen
med en gang. Den er nyttig der du sender med en planlegger betinget.

## Overføre planleggeren til senderen

Du trenger ikke å kalle planleggeren manuelt; når du har angitt den i senderen,
gjelder den for alle meldinger du sender.

```php
$sender->setScheduler(new Simple(new DateTime('2025-12-13 12:00')));
$sender->setScheduler(null); // avbryt planleggingen
```