use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Feed {
#[serde(rename = "feedId")]
pub feed_id: String,
#[serde(rename = "feedType")]
pub feed_type: String,
#[serde(rename = "marketplaceIds", skip_serializing_if = "Option::is_none")]
pub marketplace_ids: Option<Vec<String>>,
#[serde(rename = "createdTime")]
pub created_time: String,
#[serde(rename = "processingStatus")]
pub processing_status: ProcessingStatus,
#[serde(rename = "processingStartTime", skip_serializing_if = "Option::is_none")]
pub processing_start_time: Option<String>,
#[serde(rename = "processingEndTime", skip_serializing_if = "Option::is_none")]
pub processing_end_time: Option<String>,
#[serde(rename = "resultFeedDocumentId", skip_serializing_if = "Option::is_none")]
pub result_feed_document_id: Option<String>,
}
impl Feed {
pub fn new(feed_id: String, feed_type: String, created_time: String, processing_status: ProcessingStatus) -> Feed {
Feed {
feed_id,
feed_type,
marketplace_ids: None,
created_time,
processing_status,
processing_start_time: None,
processing_end_time: None,
result_feed_document_id: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProcessingStatus {
#[serde(rename = "CANCELLED")]
Cancelled,
#[serde(rename = "DONE")]
Done,
#[serde(rename = "FATAL")]
Fatal,
#[serde(rename = "IN_PROGRESS")]
InProgress,
#[serde(rename = "IN_QUEUE")]
InQueue,
}
impl Default for ProcessingStatus {
fn default() -> ProcessingStatus {
Self::Cancelled
}
}