use chrono::prelude::*;
use serde_repr::{Deserialize_repr, Serialize_repr};
#[derive(Debug, PartialEq, Clone)]
pub struct Emissao {
pub horario: DateTime<Utc>,
pub tipo: TipoEmissao,
pub finalidade: FinalidadeEmissao,
pub processo: TipoProcessoEmissao,
pub versao_processo: String,
}
#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
#[repr(u8)]
pub enum TipoEmissao {
Normal = 1,
ContigenciaFsIa = 2,
ContingenciaScan = 3,
ContigenciaEpec = 4,
ContigenciaFsDa = 5,
ContigenciaSvcAn = 6,
ContigenciaSvcRs = 7,
ContigenciaOfflineNfce = 9,
}
#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
#[repr(u8)]
pub enum FinalidadeEmissao {
Normal = 1,
Complementar = 2,
Ajuste = 3,
Devolucao = 4,
}
#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
#[repr(u8)]
pub enum TipoProcessoEmissao {
ViaAplicativoDoContribuinte = 0,
AvulsaPeloFisco = 1,
AvulsaPeloContribuinte = 2,
ViaAplicativoDoFisco = 3,
}