Os configuradores são classes que fornecem uma interface especializada para todos os tipos de mensagem

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

## Configurador de SMS

Este configurador fornece métodos para definir todos os tipos de remetente


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

Pode passar o remetente diretamente ao construtor —
`new SmsConfigurator(SmsSender::GATE_TEXT_SENDER, 'BulkGate', true)` equivale a
chamar `textSender('BulkGate')` e `unicode()`.

### Remetente de texto
```php
$sms_configurator->textSender('BulkGate');
$sms_configurator->configure($message);
```

### Remetente numérico
```php
$sms_configurator->numericSender('420777777777');
$sms_configurator->configure($message);
```

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

### Número do sistema
```php
$sms_configurator->systemNumber();
$sms_configurator->configure($message);
```

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

### Perfil do portal
```php
$sms_configurator->portalProfile(12);
$sms_configurator->configure($message);
```

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

## Configurador de SMS por país
Este configurador permite configurar rotas de SMS específicas para cada país.

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

Um país é retirado da lista com `removeCountry()` e o Unicode é ativado da mesma
forma que no configurador de SMS:

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


## Configurador de Viber

O configurador de Viber é uma classe que fornece métodos para configurar todos os aspetos de uma mensagem Viber, incluindo botões, imagens e tempos de expiração

```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);
```

## Registo do configurador no message sender

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

Pode registar apenas um configurador por canal de mensagem. Um para Viber e um para SMS.