agentlink_core/protocols/
auth.rs1use serde::{Deserialize, Serialize};
4
5use super::user::User;
6
7#[derive(Debug, Clone, Serialize)]
9pub struct LoginRequest {
10 pub identifier: String,
11 pub code: String,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct LoginResponse {
17 pub token: String,
18 pub user: User,
19}
20
21#[derive(Debug, Clone, Serialize)]
23pub struct SendCodeRequest {
24 #[serde(rename = "type")]
25 pub code_type: String,
26 pub target: String,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct SendCodeResponse {
32 pub message: String,
33 #[serde(rename = "code", default)]
35 pub verification_code: Option<String>,
36}
37
38pub type AuthResponse = LoginResponse;
40
41#[derive(Debug, Clone, Serialize)]
43pub struct SetLinkIDRequest {
44 pub linkid: String,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49pub struct SetLinkIDResponse {
50 pub message: String,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct CheckLinkIDResponse {
56 pub available: bool,
57 pub message: Option<String>,
58}
59
60#[derive(Debug, Clone, Deserialize)]
62pub struct ApiError {
63 pub error: String,
64}
65
66#[derive(Debug, Clone, Deserialize)]
68pub struct ApiErrorResponse {
69 pub success: bool,
70 pub error: ErrorDetail,
71 pub meta: ResponseMeta,
72}
73
74#[derive(Debug, Clone, Deserialize)]
76#[serde(rename_all = "camelCase")]
77pub struct ErrorDetail {
78 pub code: String,
79 pub message: String,
80 #[serde(default)]
81 pub details: serde_json::Value,
82}
83
84#[derive(Debug, Clone, Deserialize)]
86pub struct ResponseMeta {
87 pub request_id: String,
88 pub timestamp: String,
89}
90
91#[derive(Debug, Clone, Deserialize)]
93pub struct ApiResponse<T> {
94 pub success: bool,
95 pub data: T,
96 pub meta: ResponseMeta,
97}