use serde::{Deserialize, Serialize};

mod address;
mod agent;
mod analysis_layer;
mod billing;
mod customer;
mod decision_list;
mod delivery;
mod device;
mod events;
mod hotel;
mod orders;
mod payments;
mod point_of_sale;
mod responses;
mod safe_bank;
mod seller;
mod shared;
mod shipping;
mod shopping_cart;
mod travel;
pub mod validation_errors;
mod vehicle;

// Re-exportar os tipos principais
pub use address::*;
pub use analysis_layer::*;
pub use billing::*;
pub use customer::*;
pub use decision_list::*;
pub use delivery::*;
pub use device::*;
pub use events::*;
pub use hotel::*;
pub use orders::*;
pub use payments::*;
pub use point_of_sale::*;
pub use responses::*;
pub use seller::*;
pub use shared::*;
pub use shipping::*;
pub use shopping_cart::*;
pub use travel::*;
pub use validation_errors::*;
pub use vehicle::*;

/// Tipo de moeda
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
pub enum Currency {
    /// Real Brasileiro
    #[default]
    BRL,
    /// Dólar Americano
    USD,
    /// Euro
    EUR,
    /// Outra moeda
    #[serde(untagged)]
    Other(String),
}
