use serde::{Deserialize, Serialize};
use crate::elong::error::ElongError;
use super::api_response::{BaseResponse, ElongResponse};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StaticGradeResponse {
pub review: Option<Review>,
pub grade: Option<Grade>,
pub comment_tags: Option<Vec<CommentTag>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Review {
pub review_count: i32,
pub review_goods_count: i32,
pub review_poor_count: i32,
pub review_score: String,
pub tripartite_review_count: i32,
pub review_common_score: f64,
pub review_position_score: f64,
pub review_facility_score: f64,
pub review_service_score: f64,
pub review_sanitation_score: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Grade {
pub confirm_rate_of_30_minute: Option<i32>,
pub grade_of_order_count_b90: Option<i32>,
pub grade_of_order_count_c90: Option<i32>,
pub grade_of_prod_30: Option<i32>,
pub val_rate_of_90: Option<i32>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct CommentTag {
pub tag_name:String,
pub heat_value: i32,
}
impl BaseResponse for ElongResponse<StaticGradeResponse> {
fn from_json(json: String) -> Result<Self, ElongError> {
log::debug!("ElongResponse<StaticGradeResponse> json: {}", json);
print!("ElongResponse<StaticGradeResponse> json: {}", json);
Ok(serde_json::from_str(&json)?)
}
}