Skip to content

Tipos e DTOs

Bases

typescript
type BaseMessageDto = {
  message: string;
  schedule?: string;
}

type BaseResponse = {
  success: boolean;
  provider: string;
  raw?: unknown;
}

SendMessageDto

typescript
type SendMessageDto = BaseMessageDto & {
  to: string;
}
CampoTipoDescrição
tostringNúmero do destinatário
messagestringTexto da mensagem
schedulestringAgendamento (formato: yyyyMMddHHmmss)

SendBatchMessageDto

typescript
type SendBatchMessageDto = BaseMessageDto & {
  to: string[];
  campaignName?: string;
}
CampoTipoDescrição
tostring[]Array de números dos destinatários
messagestringTexto da mensagem
schedulestringAgendamento (formato: yyyyMMddHHmmss)
campaignNamestringNome da campanha (opcional, específico para batch)

SendMessageResponse

typescript
type SendMessageResponse = BaseResponse & {
  messageId?: string;
}
CampoTipoDescrição
successbooleanIndica sucesso da operação
providerstringNome do provider utilizado
messageIdstringID da mensagem no provider
rawunknownResposta original da API

SendBatchMessageResponse

typescript
type SendBatchMessageResponse = BaseResponse & {
  successful: string[];
  failed: string[];
  details?: Array<{
    to: string;
    messageId?: string;
    error?: string;
  }>;
}
CampoTipoDescrição
successbooleanIndica se pelo menos uma mensagem foi enviada
providerstringNome do provider utilizado
successfulstring[]Números enviados com sucesso
failedstring[]Números que falharam
detailsarrayDetalhes individuais de cada envio
rawunknownResposta original da API

ProviderConfig

typescript
type ProviderConfig = {
  token: string;
  baseUrl: string;
  timeout?: number;
  from?: string;
  data?: {
    senderId?: string;
    maxBatchSize?: number;
    maxMessageLength?: number;
    rateLimitPerHour?: number;
    [key: string]: unknown;
  };
}
CampoTipoObrigatórioDescrição
tokenstring✅ SimAPI key ou token de acesso
baseUrlstring✅ SimURL base da API
timeoutnumber❌ NãoTimeout em ms (padrão: 10000)
fromstring❌ NãoRemetente da mensagem
dataobject❌ NãoConfigurações específicas

Campos de data

CampoTipoDescrição
senderIdstringIdentificador do remetente
maxBatchSizenumberLimite de destinatários por lote
maxMessageLengthnumberLimite de caracteres por mensagem
rateLimitPerHournumberLimite de requisições por hora

CreateSenderConfig

typescript
type CreateSenderConfig = {
  providerName: string;
  providerConfig: ProviderConfig;
}
CampoTipoDescrição
providerNamestringNome do provider registrado
providerConfigProviderConfigConfiguração do provider

SenderConfigFile

typescript
type SenderConfigFile = {
  defaultProvider?: string;
  fallbackProviders?: string[];
  providers: Record<string, Partial<ProviderConfig>>;
}
CampoTipoDescrição
defaultProviderstringProvider padrão
fallbackProvidersstring[]Ordem de fallback
providersobjectConfigurações dos providers

ValidatedPhone

typescript
type ValidatedPhone = { 
  valid: string[]; 
  invalid: string[];
}
CampoTipoDescrição
validstring[]Números válidos
invalidstring[]Números inválidos

Próxima secção

MIT License