use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct CofinsContainer {
#[serde(rename = "COFINSAliq")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cofins_aliq: Option<CofinsAliq>,
#[serde(rename = "COFINSNT")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cofins_nt: Option<CofinsNt>,
#[serde(rename = "COFINSOutr")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cofins_outr: Option<CofinsOutr>,
}
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct CofinsAliq {
#[serde(rename = "$unflatten=CST")]
pub cst: String,
#[serde(rename = "$unflatten=vBC")]
pub valor_bc: f32,
#[serde(rename = "$unflatten=pCOFINS")]
pub aliquota: f32,
#[serde(rename = "$unflatten=vCOFINS")]
pub valor: f32,
}
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct CofinsNt {
#[serde(rename = "$unflatten=CST")]
pub cst: String,
}
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct CofinsOutr {
#[serde(rename = "$unflatten=CST")]
pub cst: String,
#[serde(rename = "$unflatten=vBC")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor_bc: Option<f32>,
#[serde(rename = "$unflatten=pCOFINS")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aliquota: Option<f32>,
#[serde(rename = "$unflatten=vCOFINS")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor: Option<f32>,
}