1use serde::{Deserialize, Serialize};
2use serde_with::skip_serializing_none;
3
4#[skip_serializing_none]
5#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
6pub struct Login {
7 pub user_id: Option<String>,
8 pub username: Option<String>,
9 pub date_first: Option<i32>,
10 pub date_last: Option<i32>,
11 pub count: Option<i32>,
12 pub ip: Option<String>,
13 pub user_agent: Option<String>,
14 pub isp: Option<String>,
15 pub country: Option<String>,
16 pub region: Option<String>,
17}
18
19#[skip_serializing_none]
20#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
21pub struct Paging {
22 pub count: Option<i32>,
23 pub total: Option<i32>,
24 pub page: Option<i32>,
25 pub pages: Option<i32>,
26}
27
28#[skip_serializing_none]
29#[derive(Deserialize, Serialize, Debug, Default, PartialEq)]
30pub struct Log {
31 pub app_id: Option<String>,
32 pub app_type: Option<String>,
33 pub service_id: Option<i32>,
34 pub service_type: Option<String>,
35 pub user_id: Option<String>,
36 pub user_name: Option<String>,
37 pub channel: Option<String>,
38 pub date: Option<String>,
39 pub change_type: Option<String>,
40 pub scope: Option<String>,
41}