Konfigurátory jsou třídy, které poskytují specializované rozhraní pro všechny typy zpráv.

```php
use BulkGate\Sdk\Country;
use BulkGate\Sdk\MessageSender;
use BulkGate\Sdk\Message\Component\SmsSender;
use BulkGate\Sdk\Configurator\{SmsConfigurator, SmsCountryConfigurator, ViberConfigurator}
```

## Konfigurátor SMS

Tento konkrétní konfigurátor poskytuje metody pro nastavení všech typů odesílatelů.


```php
$message = new Sms('420777777777', 'text_message');
$sms_configurator = new SmsConfigurator();
```

Odesílatele můžete předat rovnou konstruktoru —
`new SmsConfigurator(SmsSender::GATE_TEXT_SENDER, 'BulkGate', true)` odpovídá
volání `textSender('BulkGate')` a `unicode()`.

### Textový odesílatel
```php
$sms_configurator->textSender('BulkGate');
$sms_configurator->configure($message);
```

### Vlastní číslo
```php
$sms_configurator->numericSender('420777777777');
$sms_configurator->configure($message);
```

### Short code
```php
$sms_configurator->shortCode();
$sms_configurator->configure($message);
```

### Systémové číslo
```php
$sms_configurator->systemNumber();
$sms_configurator->configure($message);
```

### Mobile connect
```php
$sms_configurator->mobileConnect('key');
$sms_configurator->configure($message);
```

### Profil portálu
```php
$sms_configurator->portalProfile(12);
$sms_configurator->configure($message);
```

### Unicode
```php
$message = new Sms('420777777777', 'text_message');
$sms_configurator->unicode();
$sms_configurator->configure($message);
```

## Konfigurátor SMS podle zemí
Tento konfigurátor umožňuje konfigurovat konkrétní SMS routy pro jednotlivé země.

```php
$message = new Sms('420777777777', 'text_message');
$country_configurator = new SmsCountryConfigurator();
$country_configurator->addCountry(Country::CZECH_REPUBLIC, SmsSender::GATE2, 'BulkGate');
$country_configurator->configure($message);
```

Zemi ze seznamu odeberete metodou `removeCountry()`, Unicode zapnete stejně jako
u konfigurátoru SMS:

```php
$country_configurator->removeCountry(Country::CZECH_REPUBLIC);
$country_configurator->unicode();
```


## Konfigurátor Viberu

Konfigurátor Viberu je třída, která poskytuje metody pro konfiguraci všech aspektů zprávy Viber, včetně tlačítek, obrázků a doby vypršení platnosti.

```php
$viber_message = new Viber('420777777777');
$viber_configurator = new ViberConfigurator('Sender');
$viber_configurator->button('caption', 'url');
$viber_configurator->image('url');
$viber_configurator->expiration(5_000 /*seconds*/);
$viber_configurator->configure($viber_message);
```

## Registrace konfigurátoru odesílatele zprávy

```php
$viber_configurator = new ViberConfigurator('Sender');
$sender = new MessageSender($connection);
$sender->addSenderConfigurator($viber_configurator);
```

Na jeden kanál zpráv lze zaregistrovat pouze jeden konfigurátor. Jeden pro Viber a jeden pro SMS.