#![allow(clippy::derive_partial_eq_without_eq)]
use std::str::FromStr;
use tosho_macros::AutoGetter;
use crate::helper::SubscriptionPlan;
use super::{AvailableLanguages, CommentIcon};
#[derive(Clone, AutoGetter, PartialEq, ::prost::Message)]
pub struct RegistrationData {
#[prost(string, tag = "1")]
secret: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, AutoGetter, PartialEq, ::prost::Message)]
pub struct UserTickets {
#[prost(uint64, tag = "1")]
ticket: u64,
#[prost(int64, tag = "2")]
next_refresh: i64,
}
#[derive(Clone, AutoGetter, PartialEq, ::prost::Message)]
pub struct UserSubscription {
#[prost(string, tag = "1")]
#[skip_field]
plan: ::prost::alloc::string::String,
#[prost(uint64, tag = "2")]
next_payment: u64,
#[prost(bool, tag = "3")]
trial: bool,
#[prost(bool, tag = "4")]
downgrading: bool,
}
impl UserSubscription {
pub fn plan(&self) -> SubscriptionPlan {
match SubscriptionPlan::from_str(&self.plan) {
Ok(plan) => plan,
Err(_) => SubscriptionPlan::Basic,
}
}
}
#[derive(Clone, AutoGetter, PartialEq, ::prost::Message)]
pub struct UserSettings {
#[prost(message, optional, tag = "1")]
icon: ::core::option::Option<CommentIcon>,
#[prost(string, tag = "2")]
user_name: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
news_notification: bool,
#[prost(bool, tag = "4")]
chapter_notification: bool,
#[prost(uint64, tag = "5")]
english_title_count: u64,
}
#[derive(Clone, AutoGetter, PartialEq, ::prost::Message)]
pub struct UserSettingsV2 {
#[prost(message, optional, tag = "1")]
icon: ::core::option::Option<CommentIcon>,
#[prost(string, tag = "2")]
user_name: ::prost::alloc::string::String,
#[prost(bool, tag = "3")]
news_notification: bool,
#[prost(bool, tag = "4")]
chapter_notification: bool,
#[prost(message, repeated, tag = "5")]
languages: ::prost::alloc::vec::Vec<AvailableLanguages>,
#[prost(message, optional, tag = "6")]
subscription: ::core::option::Option<UserSubscription>,
}
#[derive(Clone, AutoGetter, PartialEq, ::prost::Message)]
pub struct UserProfileSettings {
#[prost(message, repeated, tag = "1")]
icons: ::prost::alloc::vec::Vec<CommentIcon>,
#[prost(string, optional, tag = "2")]
#[skip_field]
user_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "3")]
icon: ::core::option::Option<CommentIcon>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct UserUpdateProfileResult {
#[prost(enumeration = "super::UpdateProfileResult", tag = "1")]
result: i32,
}
#[derive(Clone, AutoGetter, PartialEq, ::prost::Message)]
pub struct PushTokenResponse {
#[prost(string, tag = "1")]
token: ::prost::alloc::string::String,
#[prost(int64, optional, tag = "2")]
#[skip_field]
timestamp: ::core::option::Option<i64>,
}