/*
* Zernio API
*
* API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema). Request ids: responses carry an X-Request-Id header with the id we log the request under. Quote it when reporting a problem. A valid x-request-id you send is reused as that id.
*
* The version of the OpenAPI document: 1.99.0
* Contact: support@zernio.com
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// MetaCatalogProductInput : One product shape for single and bulk calls. Money is in major units (12.99); Zernio converts to what Meta wants.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct MetaCatalogProductInput {
/// Your SKU; unique inside the catalog
#[serde(rename = "retailerId", skip_serializing_if = "Option::is_none")]
pub retailer_id: Option<String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
/// Product page
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "imageUrl", skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
#[serde(
rename = "additionalImageUrls",
skip_serializing_if = "Option::is_none"
)]
pub additional_image_urls: Option<Vec<String>>,
/// Major units, e.g. 12.99
#[serde(rename = "price", skip_serializing_if = "Option::is_none")]
pub price: Option<f64>,
/// ISO 4217, e.g. EUR
#[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(rename = "salePrice", skip_serializing_if = "Option::is_none")]
pub sale_price: Option<f64>,
/// ISO 8601
#[serde(rename = "salePriceStartDate", skip_serializing_if = "Option::is_none")]
pub sale_price_start_date: Option<String>,
/// ISO 8601
#[serde(rename = "salePriceEndDate", skip_serializing_if = "Option::is_none")]
pub sale_price_end_date: Option<String>,
#[serde(rename = "availability", skip_serializing_if = "Option::is_none")]
pub availability: Option<Availability>,
#[serde(rename = "condition", skip_serializing_if = "Option::is_none")]
pub condition: Option<Condition>,
#[serde(rename = "brand", skip_serializing_if = "Option::is_none")]
pub brand: Option<String>,
#[serde(rename = "category", skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(
rename = "googleProductCategory",
skip_serializing_if = "Option::is_none"
)]
pub google_product_category: Option<String>,
#[serde(rename = "productType", skip_serializing_if = "Option::is_none")]
pub product_type: Option<String>,
#[serde(rename = "gtin", skip_serializing_if = "Option::is_none")]
pub gtin: Option<String>,
#[serde(rename = "mpn", skip_serializing_if = "Option::is_none")]
pub mpn: Option<String>,
#[serde(rename = "inventory", skip_serializing_if = "Option::is_none")]
pub inventory: Option<i32>,
#[serde(rename = "visibility", skip_serializing_if = "Option::is_none")]
pub visibility: Option<Visibility>,
#[serde(rename = "color", skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
#[serde(rename = "size", skip_serializing_if = "Option::is_none")]
pub size: Option<String>,
#[serde(rename = "gender", skip_serializing_if = "Option::is_none")]
pub gender: Option<Gender>,
#[serde(rename = "material", skip_serializing_if = "Option::is_none")]
pub material: Option<String>,
#[serde(rename = "pattern", skip_serializing_if = "Option::is_none")]
pub pattern: Option<String>,
#[serde(rename = "customLabel0", skip_serializing_if = "Option::is_none")]
pub custom_label0: Option<String>,
#[serde(rename = "customLabel1", skip_serializing_if = "Option::is_none")]
pub custom_label1: Option<String>,
#[serde(rename = "customLabel2", skip_serializing_if = "Option::is_none")]
pub custom_label2: Option<String>,
#[serde(rename = "customLabel3", skip_serializing_if = "Option::is_none")]
pub custom_label3: Option<String>,
#[serde(rename = "customLabel4", skip_serializing_if = "Option::is_none")]
pub custom_label4: Option<String>,
}
impl MetaCatalogProductInput {
/// One product shape for single and bulk calls. Money is in major units (12.99); Zernio converts to what Meta wants.
pub fn new() -> MetaCatalogProductInput {
MetaCatalogProductInput {
retailer_id: None,
name: None,
description: None,
url: None,
image_url: None,
additional_image_urls: None,
price: None,
currency: None,
sale_price: None,
sale_price_start_date: None,
sale_price_end_date: None,
availability: None,
condition: None,
brand: None,
category: None,
google_product_category: None,
product_type: None,
gtin: None,
mpn: None,
inventory: None,
visibility: None,
color: None,
size: None,
gender: None,
material: None,
pattern: None,
custom_label0: None,
custom_label1: None,
custom_label2: None,
custom_label3: None,
custom_label4: None,
}
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Availability {
#[serde(rename = "in stock")]
InStock,
#[serde(rename = "out of stock")]
OutOfStock,
#[serde(rename = "preorder")]
Preorder,
#[serde(rename = "available for order")]
AvailableForOrder,
#[serde(rename = "discontinued")]
Discontinued,
#[serde(rename = "pending")]
Pending,
}
impl Default for Availability {
fn default() -> Availability {
Self::InStock
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Condition {
#[serde(rename = "new")]
New,
#[serde(rename = "refurbished")]
Refurbished,
#[serde(rename = "used")]
Used,
}
impl Default for Condition {
fn default() -> Condition {
Self::New
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Visibility {
#[serde(rename = "published")]
Published,
#[serde(rename = "staging")]
Staging,
}
impl Default for Visibility {
fn default() -> Visibility {
Self::Published
}
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Gender {
#[serde(rename = "female")]
Female,
#[serde(rename = "male")]
Male,
#[serde(rename = "unisex")]
Unisex,
}
impl Default for Gender {
fn default() -> Gender {
Self::Female
}
}