blacklistrc 0.0.2

BRC: Blacklist Request for Comment
Documentation
//! Tipos principais da Blacklist Network para uso em outros projetos

use serde::{Serialize, Deserialize};
use uuid::Uuid;
use chrono::{DateTime, Utc};

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum ChannelState {
    Open,
    Closed,
    Disputed,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Channel {
    pub id: Uuid,
    pub participant_a: String,
    pub participant_b: String,
    pub balance_a: u64,
    pub balance_b: u64,
    pub state: ChannelState,
    pub created_at: DateTime<Utc>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Contract {
    pub id: Uuid,
    pub creator: String,
    pub code: String,
    pub created_at: DateTime<Utc>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum InvoiceStatus {
    Issued,
    Paid,
    Cancelled,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Invoice {
    pub id: Uuid,
    pub issuer: String,
    pub recipient: String,
    pub amount: u64,
    pub status: InvoiceStatus,
    pub issued_at: DateTime<Utc>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct NFT {
    pub id: Uuid,
    pub owner: String,
    pub metadata: String,
    pub created_at: DateTime<Utc>,
}