ya_client_model/payment/
invoice.rs

1use 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}