Skip to main content

gitee_rs/users/
models.rs

1use serde::{Deserialize, Serialize};
2use crate::utils::deserialize_string_or_int;
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub struct User {
6    #[serde(deserialize_with = "deserialize_string_or_int")]
7    pub id: String,  // Gitee API may return string or integer IDs
8    pub login: String,
9    #[serde(default)]
10    pub name: Option<String>,
11    #[serde(default)]
12    pub email: Option<String>,
13    pub avatar_url: String,
14    pub html_url: String,
15    #[serde(default)]
16    pub bio: Option<String>,
17    #[serde(default)]
18    pub blog: Option<String>,
19    #[serde(default)]
20    pub location: Option<String>,
21    #[serde(default)]
22    pub followers: i32,
23    #[serde(default)]
24    pub following: i32,
25    #[serde(default)]
26    pub public_repos: i32,
27    #[serde(default)]
28    pub created_at: Option<String>,
29    #[serde(default)]
30    pub updated_at: Option<String>,
31}
32
33#[derive(Debug, Clone, Deserialize, Serialize)]
34pub struct SearchUserResult {
35    #[serde(deserialize_with = "deserialize_string_or_int")]
36    pub id: String,  // Gitee API may return string or integer IDs
37    pub login: String,
38    #[serde(default)]
39    pub name: Option<String>,
40    pub avatar_url: String,
41    pub html_url: String,
42    #[serde(default)]
43    pub public_repos: i32,
44    #[serde(default)]
45    pub followers: i32,
46    #[serde(default)]
47    pub score: f64,
48}