Skip to main content

wanisabi_model/
user.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug, Clone)]
5pub struct UserSubscription {
6    pub active: bool,
7    pub max_level_granted: i64,
8    pub period_ends_at: Option<DateTime<Utc>>,
9    #[serde(rename = "type")]
10    pub kind: String,
11}
12
13#[derive(Serialize, Deserialize, Debug, Clone)]
14pub struct UserPreferences {
15    pub default_voice_actor_id: i64,
16    pub lessons_autoplay_audio: bool,
17    pub lessons_batch_size: i64,
18    pub lessons_presentation_order: String,
19    pub reviews_autoplay_audio: bool,
20    pub reviews_display_srs_indicator: bool,
21}
22
23#[derive(Serialize, Deserialize, Debug, Clone)]
24pub struct User {
25    pub id: String,
26    pub current_vacation_started_at: Option<DateTime<Utc>>,
27    pub level: i64,
28    pub preferences: UserPreferences,
29    pub profile_url: String,
30    pub started_at: DateTime<Utc>,
31    pub subscription: UserSubscription,
32    pub username: String,
33}