use cdk_common::mint::Operation;
use cdk_common::nuts::{BlindedMessage, CurrencyUnit};
use cdk_common::{Amount, PublicKey};
use uuid::Uuid;
use crate::cdk_payment::MakePaymentResponse;
use crate::mint::MeltQuote;
pub struct Initial {
pub operation_id: Uuid,
}
pub struct SetupComplete {
pub quote: MeltQuote,
pub input_ys: Vec<PublicKey>,
pub blinded_messages: Vec<BlindedMessage>,
pub operation: Operation,
pub fee_breakdown: crate::fees::ProofsFeeBreakdown,
}
pub struct PaymentConfirmed {
pub quote: MeltQuote,
pub input_ys: Vec<PublicKey>,
#[allow(dead_code)] pub blinded_messages: Vec<BlindedMessage>,
pub payment_result: MakePaymentResponse,
pub operation: Operation,
pub fee_breakdown: crate::fees::ProofsFeeBreakdown,
}
#[derive(Debug, Clone)]
pub enum SettlementDecision {
Internal { amount: Amount<CurrencyUnit> },
RequiresExternalPayment,
}