rust_woocommerce/models/
product_reviews.rs1use crate::controllers::Entity;
2use chrono::NaiveDateTime;
3use serde::{Deserialize, Serialize};
4
5use crate::controllers::product_reviews::{
6 NoEmail, NoId, ProductReviewCreateBuilder, ProductReviewUpdateBuilder,
7};
8#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct ProductReview {
10 pub id: i32,
12 pub date_created: NaiveDateTime,
14 pub date_created_gmt: NaiveDateTime,
16 pub product_id: i32,
18 pub status: ReviewStatus,
20 pub reviewer: String,
22 pub reviewer_email: String,
24 pub review: String,
26 pub rating: i32,
28 pub verified: bool,
30}
31impl Entity for ProductReview {
32 fn endpoint() -> String {
33 String::from("products/reviews/")
34 }
35
36 fn child_endpoint(parent_id: i32) -> String {
37 let _ = parent_id;
38 String::new()
39 }
40}
41impl ProductReview {
42 pub fn create() -> ProductReviewCreateBuilder<NoId, NoEmail> {
43 ProductReviewCreateBuilder::default()
44 }
45 pub fn update() -> ProductReviewUpdateBuilder {
46 ProductReviewUpdateBuilder::default()
47 }
48}
49#[derive(Debug, Clone, Serialize, Deserialize, Default)]
50#[serde(rename_all = "lowercase")]
51pub enum ReviewStatus {
52 #[default]
53 Approved,
54 Hold,
55 Spam,
56 Unspam,
57 Trash,
58 Untrash,
59}