gewe_core/personal/
safety.rs

1use 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}