use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Payment {
pub id: String,
pub amount: f64,
pub currency: String,
pub status: PaymentStatus,
pub description: Option<String>,
pub customer_id: Option<String>,
pub created_at: String,
pub updated_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum PaymentStatus {
#[serde(rename = "pending")]
Pending,
#[serde(rename = "processing")]
Processing,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
#[serde(rename = "cancelled")]
Cancelled,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreatePaymentRequest {
pub amount: f64,
pub currency: String,
pub description: Option<String>,
pub customer_id: Option<String>,
pub callback_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PaymentResponse {
pub payment: Payment,
pub checkout_url: Option<String>,
}