r2_data_persistence/models/
session.rs1use crate::schema::session;
2use diesel::{AsChangeset, Insertable};
3
4pub struct GetSessionModel {
5 pub id: String,
6 pub user_uuid: String,
7 pub map_id: String,
8 pub session_date: chrono::NaiveDateTime,
9 pub difficulty: String,
10 pub accuracy: f32,
11 pub level: i32,
12 pub game_time: i32,
13 pub score_value: i32,
14 pub targets_hit: i32,
15 pub targets_miss: i32,
16 pub average_offset_time: i32,
17 pub personal_best: bool,
18}
19
20#[derive(Insertable, Clone)]
21#[diesel(table_name = session)]
22pub struct CreateSessionModel {
23 pub user_uuid: String,
24 pub map_id: String,
25 pub session_date: chrono::NaiveDateTime,
26 pub difficulty: String,
27 pub accuracy: f32,
28 pub level: i32,
29 pub game_time: i32,
30 pub score_value: i32,
31 pub targets_hit: i32,
32 pub targets_miss: i32,
33 pub average_offset_time: i32,
34 pub personal_best: bool,
35}
36
37#[derive(AsChangeset)]
38#[diesel(table_name = session)]
39pub struct UpdateSessionModel {
40 pub user_uuid: Option<String>,
41 pub map_id: Option<String>,
42 pub session_date: Option<chrono::NaiveDateTime>,
43 pub difficulty: Option<String>,
44 pub accuracy: Option<f32>,
45 pub level: Option<i32>,
46 pub game_time: Option<i32>,
47 pub score_value: Option<i32>,
48 pub targets_hit: Option<i32>,
49 pub targets_miss: Option<i32>,
50 pub average_offset_time: Option<i32>,
51 pub personal_best: Option<bool>,
52}