use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] pub struct Claims { pub sub: String, pub iss: String, pub aud: String, pub exp: u64, pub iat: u64, #[serde(skip_serializing_if = "Option::is_none")] pub scope: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct TokenResponse { pub access_token: String, pub token_type: String, pub expires_in: u64, #[serde(skip_serializing_if = "Option::is_none")] pub refresh_token: Option, #[serde(skip_serializing_if = "Option::is_none")] pub scope: Option, } #[derive(Debug, Serialize, Deserialize)] pub struct ErrorResponse { pub error: String, #[serde(skip_serializing_if = "Option::is_none")] pub error_description: Option, } #[derive(Debug, Clone)] pub struct AuthCode { pub client_id: String, pub redirect_uri: String, pub scope: Option, pub expires_at: u64, pub user_id: String, }