<?php declare(strict_types=1);

namespace Apexl\Io\NotifierTwilio\Dtos;

use apexl\Config\ConfigurationInterface;
use apexl\dto\Dto;
use Exception;

final readonly class TwilioConfigDto extends Dto
{
    public function __construct(
        public string $sid,
        public string $token,
        public string $from,
    ) {}

    /**
     * @throws Exception
     */
    public static function fromConfig(ConfigurationInterface $config): TwilioConfigDto
    {
        return new TwilioConfigDto(
            $config->get('notifier.drivers.sms.twilio.sid'),
            $config->get('notifier.drivers.sms.twilio.token'),
            $config->get('notifier.drivers.sms.twilio.from'),
        );
    }
}
