Plánovače jsou třídy, které umožňují plánování zpráv v určitých intervalech nebo časech.

## Jednoduchý plánovač

Jednoduchý plánovač pro odesílání zpráv v určitý čas.

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

## Kampaň

Plánovač kampaní umožňuje spustit odesílání zpráv od určitého času v definovaných intervalech. Můžete také definovat, kolik plánovaných zpráv bude odesláno po určitém intervalu.

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

Metoda `restriction()` přijímá jen tyto jednotky: `minute`, `minutes`, `hour`,
`hours`, `day`, `days`. Jiná hodnota skončí výjimkou
`BulkGate\Sdk\InvalidStateException`.

Čas začátku změníte metodou `datetime()`, počítadlo rozeslaných dávek vynuluje
`reset()`.

## Žádné plánování

`BulkGate\Sdk\Scheduler\None` je prázdný plánovač — zprávu odešle okamžitě.
Hodí se tam, kde plánovač předáváte podmíněně.

## Předání plánovače senderu

Plánovač nemusíte volat ručně; když ho nastavíte senderu, použije se na každou
odeslanou zprávu.

```php
$sender->setScheduler(new Simple(new DateTime('2025-12-13 12:00')));
$sender->setScheduler(null); // zrušit plánování
```