109 lines
1.8 KiB
TypeScript
109 lines
1.8 KiB
TypeScript
/**
|
|
* SMS service configuration interface
|
|
*/
|
|
export interface ISmsConfig {
|
|
/**
|
|
* API token for the gateway service
|
|
*/
|
|
apiGatewayApiToken: string;
|
|
|
|
/**
|
|
* Default sender ID or phone number
|
|
*/
|
|
defaultSender?: string;
|
|
|
|
/**
|
|
* SMS rate limiting
|
|
*/
|
|
rateLimit?: {
|
|
/**
|
|
* Whether rate limiting is enabled
|
|
*/
|
|
enabled?: boolean;
|
|
|
|
/**
|
|
* Maximum requests per period
|
|
*/
|
|
maxPerPeriod?: number;
|
|
|
|
/**
|
|
* Period duration in milliseconds
|
|
*/
|
|
periodMs?: number;
|
|
|
|
/**
|
|
* Whether to apply rate limit per key
|
|
*/
|
|
perKey?: boolean;
|
|
|
|
/**
|
|
* Number of burst tokens
|
|
*/
|
|
burstTokens?: number;
|
|
|
|
/**
|
|
* Maximum messages per recipient per day
|
|
*/
|
|
maxPerRecipientPerDay?: number;
|
|
};
|
|
|
|
/**
|
|
* SMS provider configuration
|
|
*/
|
|
provider?: {
|
|
/**
|
|
* Provider type
|
|
*/
|
|
type?: 'gateway' | 'twilio' | 'other';
|
|
|
|
/**
|
|
* Provider-specific configuration
|
|
*/
|
|
config?: Record<string, any>;
|
|
|
|
/**
|
|
* Fallback provider configuration
|
|
*/
|
|
fallback?: {
|
|
/**
|
|
* Whether to use fallback provider
|
|
*/
|
|
enabled?: boolean;
|
|
|
|
/**
|
|
* Provider type
|
|
*/
|
|
type?: 'gateway' | 'twilio' | 'other';
|
|
|
|
/**
|
|
* Provider-specific configuration
|
|
*/
|
|
config?: Record<string, any>;
|
|
};
|
|
};
|
|
|
|
/**
|
|
* Verification code settings
|
|
*/
|
|
verification?: {
|
|
/**
|
|
* Code length
|
|
*/
|
|
codeLength?: number;
|
|
|
|
/**
|
|
* Code expiration time in seconds
|
|
*/
|
|
expirationSeconds?: number;
|
|
|
|
/**
|
|
* Maximum number of attempts
|
|
*/
|
|
maxAttempts?: number;
|
|
|
|
/**
|
|
* Cooldown period in seconds
|
|
*/
|
|
cooldownSeconds?: number;
|
|
};
|
|
} |