admin_config/
sms_config.rs

1//! 短信配置模块
2//!
3//! 提供短信服务商(腾讯云、阿里云)的配置
4
5use serde::{Deserialize, Serialize};
6
7/// 短信配置
8///
9/// 支持腾讯云和阿里云短信服务
10///
11/// # 字段说明
12///
13/// - `provider`: 短信提供商,可选值:tencent/aliyun
14/// - `app_id`: 应用 ID
15/// - `app_key`: 应用密钥
16/// - `sign_name`: 短信签名
17/// - `template_id`: 短信模板 ID
18/// - `tencent`: 腾讯云短信配置(可选)
19/// - `aliyun`: 阿里云短信配置(可选)
20///
21/// # 示例
22///
23/// ```rust
24/// use admin_config::SmsConfig;
25///
26/// let config = SmsConfig {
27///     provider: "tencent".to_string(),
28///     app_id: "1400000000".to_string(),
29///     ..Default::default()
30/// };
31/// ```
32#[derive(Debug, Clone, Serialize, Deserialize, Default)]
33pub struct SmsConfig {
34    /// 短信提供商 (tencent/aliyun)
35    pub provider: String,
36    /// 应用 ID
37    pub app_id: String,
38    /// 应用 Key
39    pub app_key: String,
40    /// 签名名称
41    pub sign_name: String,
42    /// 模板 ID
43    pub template_id: String,
44    /// 腾讯云短信配置
45    pub tencent: Option<TencentSmsConfig>,
46    /// 阿里云短信配置
47    pub aliyun: Option<AliyunSmsConfig>,
48}
49
50/// 腾讯云短信配置
51#[derive(Debug, Clone, Serialize, Deserialize, Default)]
52pub struct TencentSmsConfig {
53    /// SDK App ID
54    pub sdk_app_id: String,
55    /// Secret ID
56    pub secret_id: String,
57    /// Secret Key
58    pub secret_key: String,
59    /// 区域
60    pub region: String,
61}
62
63/// 阿里云短信配置
64#[derive(Debug, Clone, Serialize, Deserialize, Default)]
65pub struct AliyunSmsConfig {
66    /// Access Key ID
67    pub access_key_id: String,
68    /// Access Key Secret
69    pub access_key_secret: String,
70    /// 区域
71    pub region: String,
72}