use serde::{Deserialize, Serialize};
#[derive(Serialize, Debug)]
pub struct GraphQLQuery {
pub query: String,
pub variables: Option<serde_json::Value>,
#[serde(rename = "operationName")]
pub operation_name: Option<String>,
}
#[derive(Deserialize, Debug)]
pub struct QuestionSnippet {
#[serde(rename = "langSlug")]
pub lang_slug: String,
pub code: String,
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct UserDetail {
pub username: Option<String>,
#[serde(rename = "isPremium")]
pub is_premium: Option<bool>,
#[serde(rename = "isVerified")]
pub is_verified: bool,
}
#[derive(Deserialize, Debug)]
pub struct Question {
#[serde(rename = "questionId")]
pub question_id: String,
#[serde(rename = "titleSlug")]
pub title_slug: String,
pub title: String,
pub content: String,
#[serde(rename = "exampleTestcases")]
pub example_test_cases: String,
#[serde(rename = "codeSnippets")]
pub code_snippets: Vec<QuestionSnippet>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct ProblemSummary {
pub id: u64,
pub acceptance: f64,
pub accepted: u64,
pub difficulty: u8,
pub slug: String,
pub status: Option<String>,
pub submitted: u64,
pub title: String,
pub is_paid: bool,
pub topics: Vec<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Topic {
pub name: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct QuestionTopics {
pub name: String,
pub id: String,
pub slug: String,
#[serde(rename = "translatedName")]
pub translated_name: Option<String>,
#[serde(rename = "questionIds")]
pub question_ids: Vec<u64>,
}