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}