1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// // TimeStampTool
// #[derive(Debug, Clone)]
// pub struct TimeStampKeys {
// pub created_at: Option<String>,
// pub updated_at: Option<String>,
// }
// pub struct TimeStampTool {
// keys: TimeStampKeys,
// nullable: bool,
// }
// impl TimeStampTool {
// // const IS_UPDATED_AT_NULLABLE_DEFAULT: bool = true;
// pub fn new(_timestamps: Option<()>) -> Self {
// todo!()
// // timestamps: Option<Boolean | Object>
// // if timestamps.is_none() {
// // return Self {
// // keys: TimeStampKeys {
// // created_at: None,
// // updated_at: None,
// // },
// // nullable: false,
// // };
// // }
// // match timestamps.unwrap() {
// // Value::Bool(b) => {
// // if *b {
// // return Self {
// // keys: TimeStampKeys {
// // created_at: Some("created_at".into()),
// // updated_at: Some("updated_at".into()),
// // },
// // nullable: Self::IS_UPDATED_AT_NULLABLE_DEFAULT,
// // };
// // } else {
// // return Self {
// // keys: TimeStampKeys {
// // created_at: None,
// // updated_at: None,
// // },
// // nullable: false,
// // };
// // }
// // }
// // Value::Object(map) => {
// // let created_at = map
// // .get("created_at")
// // .and_then(|v| v.as_str())
// // .map(|s| s.to_string());
// // let updated_at = match map.get("updated_at") {
// // Some(Value::Object(o)) => {
// // o.get("key").and_then(|v| v.as_str()).map(|s| s.to_string())
// // }
// // Some(Value::String(s)) => Some(s.clone()),
// // _ => None,
// // };
// // let nullable = match map.get("updated_at") {
// // Some(Value::Object(o)) => o
// // .get("nullable")
// // .and_then(|v| v.as_bool())
// // .unwrap_or(Self::IS_UPDATED_AT_NULLABLE_DEFAULT),
// // _ => Self::IS_UPDATED_AT_NULLABLE_DEFAULT,
// // };
// // return Self {
// // keys: TimeStampKeys {
// // created_at,
// // updated_at,
// // },
// // nullable,
// // };
// // }
// // _ => {
// // return Self {
// // keys: TimeStampKeys {
// // created_at: None,
// // updated_at: None,
// // },
// // nullable: false,
// // }
// // }
// // }
// }
// pub fn get_keys(&self) -> &TimeStampKeys {
// &self.keys
// }
// pub fn is_timestamp_key(&self, key: &str) -> bool {
// if let Some(ref k) = self.keys.created_at {
// if k == key {
// return true;
// }
// }
// if let Some(ref k) = self.keys.updated_at {
// if k == key {
// return true;
// }
// }
// false
// }
// pub fn is_nullable(&self) -> bool {
// self.nullable
// }
// pub fn with_timestamps(&self) -> bool {
// self.keys.created_at.is_some() || self.keys.updated_at.is_some()
// }
// }