use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::types::{PaymentMetadata, PaymentTier};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SendIntentState {
Pending {
created_at: u64,
},
Batched {
batch_id: Uuid,
created_at: u64,
},
AwaitingConfirmation {
batch_id: Uuid,
txid: String,
outpoint: String,
fee_contribution_sat: u64,
created_at: u64,
},
Failed {
reason: String,
created_at: u64,
failed_at: u64,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SendIntentRecord {
pub intent_id: Uuid,
pub quote_id: String,
pub address: String,
pub amount_sat: u64,
pub max_fee_amount_sat: u64,
pub tier: PaymentTier,
pub metadata: PaymentMetadata,
pub state: SendIntentState,
}