crypto_pay_api/models/
webhook.rs1use serde::{Deserialize, Serialize};
2
3use super::Invoice;
4
5#[derive(Debug, Deserialize, Clone, PartialEq, Eq)]
6#[serde(rename_all = "snake_case")]
7pub enum UpdateType {
8 #[serde(rename = "invoice_paid")]
9 InvoicePaid,
10}
11#[derive(Debug, Deserialize)]
12pub struct WebhookUpdate {
13 pub update_id: i64,
14 pub update_type: UpdateType,
15 pub request_date: String,
16 pub payload: WebhookPayload,
17}
18
19#[derive(Debug, Deserialize, Clone)]
20#[serde(untagged)]
21pub enum WebhookPayload {
22 InvoicePaid(Invoice),
23}
24
25#[derive(Debug, Serialize)]
26pub struct WebhookResponse {
27 pub ok: bool,
28}
29
30impl WebhookResponse {
31 pub fn ok() -> Self {
32 Self { ok: true }
33 }
34}