use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
pub struct Issqn {
#[serde(rename = "$unflatten=vBC")]
pub valor_bc: f32,
#[serde(rename = "$unflatten=vAliq")]
pub aliquota: f32,
#[serde(rename = "$unflatten=vISSQN")]
pub valor: f32,
#[serde(rename = "$unflatten=cMunFG")]
pub codigo_municipio_fato_gerador: String,
#[serde(rename = "$unflatten=cListServ")]
pub codigo_lista_servico: String,
#[serde(rename = "$unflatten=vDeducao")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor_deducao: Option<f32>,
#[serde(rename = "$unflatten=vOutro")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor_outras_retencoes: Option<f32>,
#[serde(rename = "$unflatten=vDescIncond")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor_desconto_incondicionado: Option<f32>,
#[serde(rename = "$unflatten=vDescCond")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor_desconto_condicionado: Option<f32>,
#[serde(rename = "$unflatten=vISSRet")]
#[serde(skip_serializing_if = "Option::is_none")]
pub valor_retencao_iss: Option<f32>,
#[serde(rename = "$unflatten=indISS")]
pub indicador_exigibilidade: u8,
#[serde(rename = "$unflatten=cServico")]
#[serde(skip_serializing_if = "Option::is_none")]
pub codigo_servico_municipio: Option<String>,
#[serde(rename = "$unflatten=cMun")]
#[serde(skip_serializing_if = "Option::is_none")]
pub codigo_municipio_incidencia: Option<String>,
#[serde(rename = "$unflatten=cPais")]
#[serde(skip_serializing_if = "Option::is_none")]
pub codigo_pais: Option<String>,
#[serde(rename = "$unflatten=nProcesso")]
#[serde(skip_serializing_if = "Option::is_none")]
pub numero_processo: Option<String>,
#[serde(rename = "$unflatten=indIncentivo")]
pub indicador_incentivo_fiscal: u8,
}
impl Default for Issqn {
fn default() -> Self {
Self {
valor_bc: 0.0,
aliquota: 0.0,
valor: 0.0,
codigo_municipio_fato_gerador: String::new(),
codigo_lista_servico: String::new(),
valor_deducao: None,
valor_outras_retencoes: None,
valor_desconto_incondicionado: None,
valor_desconto_condicionado: None,
valor_retencao_iss: None,
indicador_exigibilidade: 1,
codigo_servico_municipio: None,
codigo_municipio_incidencia: None,
codigo_pais: None,
numero_processo: None,
indicador_incentivo_fiscal: 2,
}
}
}