gewe_core/personal/
safety.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct GetSafetyInfoRequest<'a> {
6 #[serde(rename = "appId")]
7 pub app_id: &'a str,
8}
9
10#[derive(Debug, Clone, Serialize, Deserialize, Default)]
11#[serde(rename_all = "camelCase")]
12pub struct SafetyDeviceRecord {
13 pub uuid: String,
14 #[serde(rename = "deviceName")]
15 pub device_name: String,
16 #[serde(rename = "deviceType")]
17 pub device_type: String,
18 #[serde(rename = "lastTime")]
19 pub last_time: i64,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize, Default)]
23#[serde(rename_all = "camelCase")]
24pub struct GetSafetyInfoResponse {
25 pub list: Vec<SafetyDeviceRecord>,
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 #[test]
33 fn test_safety_device_record_default() {
34 let record = SafetyDeviceRecord::default();
35 assert_eq!(record.uuid, "");
36 assert_eq!(record.device_name, "");
37 assert_eq!(record.device_type, "");
38 assert_eq!(record.last_time, 0);
39 }
40
41 #[test]
42 fn test_safety_device_record_deserialization() {
43 let json = r#"{
44 "uuid": "device_uuid",
45 "deviceName": "iPhone 12",
46 "deviceType": "mobile",
47 "lastTime": 1234567890
48 }"#;
49 let record: SafetyDeviceRecord = serde_json::from_str(json).unwrap();
50 assert_eq!(record.uuid, "device_uuid");
51 assert_eq!(record.device_name, "iPhone 12");
52 assert_eq!(record.device_type, "mobile");
53 assert_eq!(record.last_time, 1234567890);
54 }
55
56 #[test]
57 fn test_get_safety_info_response_default() {
58 let resp = GetSafetyInfoResponse::default();
59 assert!(resp.list.is_empty());
60 }
61
62 #[test]
63 fn test_get_safety_info_request_serialization() {
64 let req = GetSafetyInfoRequest { app_id: "test_app" };
65 let json = serde_json::to_string(&req).unwrap();
66 assert!(json.contains("test_app"));
67 }
68}