/*
* UIC 90918-10 - OSDM
*
* Specifications for the OSDM API standard. The OSDM specification supports two modes of operation: Retailer Mode and Distributor Mode. The API works identically in both modes, except that in distributor mode the API also returns fare information. The following resources are key to get started: - [Processes](https://osdm.io/spec/processes/) - [Models](https://osdm.io/spec/models/) - [Getting started](https://osdm.io/spec/getting-started/)
*
* The version of the OpenAPI document: 3.7.0
* Contact: osdm@uic.org
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// CombinationTag : Tag to indicate that some products from a provider can be sold only when in conjunction with product(s) from another provider using the same tag. At least one, not all, combinationTags must be in common to allow combination. No combinationTags indicate that there are no combination constraints on the product.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct CombinationTag {
#[serde(rename = "id")]
pub id: String,
/// If false it means that this product can be sold also when not in conjunction with a product with the same tag. This is needed to propose specific products from one provider that depend on public ones of another.
#[serde(rename = "needsToBeCombined", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub needs_to_be_combined: Option<Option<bool>>,
}
impl CombinationTag {
/// Tag to indicate that some products from a provider can be sold only when in conjunction with product(s) from another provider using the same tag. At least one, not all, combinationTags must be in common to allow combination. No combinationTags indicate that there are no combination constraints on the product.
pub fn new(id: String) -> CombinationTag {
CombinationTag {
id,
needs_to_be_combined: None,
}
}
}