use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use crate::AnkiRequest;
use crate::entities::{CardId, Timestamp};
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize)]
pub struct CardsInfoRequest {
pub cards: Vec<CardId>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CardsInfoResponse {
pub answer: String,
pub question: String,
pub deck_name: String,
pub model_name: String,
pub field_order: usize,
pub fields: HashMap<String, CardsInfoField>,
pub css: String,
pub card_id: CardId,
pub interval: usize,
pub note: usize,
pub ord: usize,
#[serde(rename = "type")]
pub type_field: usize,
pub queue: usize,
pub due: usize,
pub reps: usize,
pub lapses: usize,
pub left: usize,
#[serde(rename = "mod")]
pub mod_: Timestamp,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
pub struct CardsInfoField {
pub value: String,
pub order: usize,
}
impl AnkiRequest for CardsInfoRequest {
type Response = Vec<CardsInfoResponse>;
const ACTION: &'static str = "cardsInfo";
const VERSION: u8 = 6;
}