nfe_parser/base/ide/
operacao.rs1use chrono::prelude::*;
4use serde_repr::{Deserialize_repr, Serialize_repr};
5
6#[derive(Debug, PartialEq, Clone)]
8pub struct Operacao {
9 pub horario: Option<DateTime<Utc>>,
10 pub tipo: TipoOperacao,
11 pub destino: DestinoOperacao,
12 pub natureza: String,
13 pub consumidor: TipoConsumidor,
14 pub presenca: TipoPresencaComprador,
15 pub intermediador: Option<TipoIntermediador>,
16}
17
18#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
20#[repr(u8)]
21pub enum TipoOperacao {
22 Entrada = 0,
23 Saida = 1,
24}
25
26#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
28#[repr(u8)]
29pub enum DestinoOperacao {
30 Interna = 1,
31 Interestadual = 2,
32 ComExterior = 3,
33}
34
35#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
37#[repr(u8)]
38pub enum TipoConsumidor {
39 Normal = 0,
40 Final = 1,
41}
42
43#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
45#[repr(u8)]
46pub enum TipoPresencaComprador {
47 NaoSeAplica = 0,
49 Presencial = 1,
51 ViaInternel = 2,
53 ViaTeleatendimento = 3,
55 NfceEmDomicilio = 4,
57 PresencialForaDoEstabelecimento = 5,
59 Outros = 9,
61}
62
63#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
65#[repr(u8)]
66pub enum TipoIntermediador {
67 SemIntermediador = 0,
69 EmSiteDeTerceiros = 1,
71}