agentlink-core 0.1.0

AgentLink SDK Core - Platform agnostic core library
Documentation
//! Authentication Protocol Types

use serde::{Deserialize, Serialize};

use super::user::User;

/// 邮件验证码登录请求
#[derive(Debug, Clone, Serialize)]
pub struct LoginRequest {
    pub identifier: String,
    pub code: String,
}

/// 登录响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LoginResponse {
    pub token: String,
    pub user: User,
}

/// 发送验证码请求
#[derive(Debug, Clone, Serialize)]
pub struct SendCodeRequest {
    #[serde(rename = "type")]
    pub code_type: String,
    pub target: String,
}

/// 发送验证码响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SendCodeResponse {
    pub message: String,
    /// 验证码(仅在开发/测试模式下返回)
    #[serde(rename = "code", default)]
    pub verification_code: Option<String>,
}

/// 认证响应(兼容旧版本)
pub type AuthResponse = LoginResponse;

/// 设置 LinkID 请求
#[derive(Debug, Clone, Serialize)]
pub struct SetLinkIDRequest {
    pub linkid: String,
}

/// 设置 LinkID 响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SetLinkIDResponse {
    pub message: String,
}

/// 检查 LinkID 响应
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CheckLinkIDResponse {
    pub available: bool,
    pub message: Option<String>,
}

/// API 错误响应(旧格式)
#[derive(Debug, Clone, Deserialize)]
pub struct ApiError {
    pub error: String,
}

/// 新格式 API 错误响应
#[derive(Debug, Clone, Deserialize)]
pub struct ApiErrorResponse {
    pub success: bool,
    pub error: ErrorDetail,
    pub meta: ResponseMeta,
}

/// 错误详情
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ErrorDetail {
    pub code: String,
    pub message: String,
    #[serde(default)]
    pub details: serde_json::Value,
}

/// 响应元数据
#[derive(Debug, Clone, Deserialize)]
pub struct ResponseMeta {
    pub request_id: String,
    pub timestamp: String,
}

/// 新格式 API 成功响应
#[derive(Debug, Clone, Deserialize)]
pub struct ApiResponse<T> {
    pub success: bool,
    pub data: T,
    pub meta: ResponseMeta,
}