rain_sdk/models/
charges.rs

1//! Models for charge endpoints
2
3use chrono::{DateTime, Utc};
4use serde::{Deserialize, Serialize};
5use uuid::Uuid;
6
7/// Request to create a charge
8#[derive(Debug, Clone, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct CreateChargeRequest {
11    pub amount: i64, // Amount in cents, must be >= 1
12    pub description: String,
13}
14
15/// Charge information
16#[derive(Debug, Clone, Serialize, Deserialize)]
17#[serde(rename_all = "camelCase")]
18pub struct Charge {
19    pub id: Uuid,
20    pub created_at: DateTime<Utc>,
21    // amount and description are optional in the response
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub amount: Option<i64>,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub description: Option<String>,
26}