ya_client_model/payment/
invoice.rs1use crate::NodeId;
2use bigdecimal::BigDecimal;
3use chrono::{DateTime, Utc};
4use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct Invoice {
9 pub invoice_id: String,
10 pub issuer_id: NodeId,
11 pub recipient_id: NodeId,
12 pub payee_addr: String,
13 pub payer_addr: String,
14 pub payment_platform: String,
15 pub timestamp: DateTime<Utc>,
16 pub agreement_id: String,
17 pub activity_ids: Vec<String>,
18 pub amount: BigDecimal,
19 pub payment_due_date: DateTime<Utc>,
20 pub status: crate::payment::DocumentStatus,
21}
22
23#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct NewInvoice {
26 pub agreement_id: String,
27 #[serde(skip_serializing_if = "Option::is_none", default)]
28 pub activity_ids: Option<Vec<String>>,
29 pub amount: BigDecimal,
30 pub payment_due_date: DateTime<Utc>,
31}