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}