1
1
use super :: Id ;
2
- use chrono:: { Local , NaiveDateTime } ;
2
+ use crate :: utils:: time:: create_time;
3
+ use chrono:: NaiveDateTime ;
3
4
4
5
pub type AccountId = Id < Account > ;
5
6
@@ -8,50 +9,38 @@ pub struct Account {
8
9
pub id : AccountId ,
9
10
pub username : String ,
10
11
pub grade : i32 ,
11
- pub card_type : String ,
12
- pub card_id : Vec < u8 > ,
12
+ pub expiration_date : NaiveDateTime ,
13
13
pub created_at : NaiveDateTime ,
14
14
}
15
15
16
16
impl Account {
17
- pub fn create ( username : String , grade : i32 , card_type : String ) -> Self {
17
+ pub fn new ( username : String , grade : i32 , expiration_date : NaiveDateTime ) -> Self {
18
18
Self {
19
19
id : Default :: default ( ) ,
20
20
username,
21
21
grade,
22
- card_type,
23
- card_id : create_card_id ( ) ,
22
+ expiration_date,
24
23
created_at : create_time ( ) ,
25
24
}
26
25
}
27
26
}
28
27
29
- fn create_card_id ( ) -> Vec < u8 > {
30
- //TODO
31
- let card_id: Vec < u8 > = vec ! [ 1 , 16 , 3 , 16 , 197 , 20 , 106 , 38 ] ;
32
- card_id
33
- }
34
-
35
- fn create_time ( ) -> NaiveDateTime {
36
- let local_now = Local :: now ( ) ;
37
- local_now. naive_local ( )
38
- }
39
-
40
28
#[ cfg( test) ]
41
29
mod tests {
42
30
use super :: * ;
31
+ use chrono:: Duration ;
43
32
44
33
#[ test]
45
34
fn test_create_account ( ) {
46
35
let username = "test_user" . to_string ( ) ;
47
36
let grade = 4 ;
48
- let card_type = "Suica" . to_string ( ) ;
49
- let card_id = [ 1 , 16 , 3 , 16 , 197 , 20 , 106 , 38 ] . to_vec ( ) ;
37
+ let current_time = create_time ( ) ;
38
+ let expiration_date = current_time + Duration :: hours ( 1 ) ;
50
39
51
- let account = Account :: create ( username. clone ( ) , grade, card_type . clone ( ) ) ;
40
+ let account = Account :: new ( username. clone ( ) , grade, expiration_date ) ;
52
41
53
42
assert_eq ! ( account. id. get( ) , 0 ) ;
54
43
assert_eq ! ( account. username, username) ;
55
- assert_eq ! ( account. card_id , card_id ) ;
44
+ assert_eq ! ( account. expiration_date , expiration_date ) ;
56
45
}
57
46
}
0 commit comments