adk_payments/domain/
actor.rs1use serde::{Deserialize, Serialize};
2
3use crate::domain::ProtocolExtensions;
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7#[serde(rename_all = "snake_case")]
8pub enum CommerceActorRole {
9 Shopper,
10 Merchant,
11 CredentialsProvider,
12 PaymentProcessor,
13 AgentSurface,
14 System,
15 Custom(String),
16}
17
18#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(rename_all = "camelCase")]
21pub struct CommerceActor {
22 pub actor_id: String,
23 pub role: CommerceActorRole,
24 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub display_name: Option<String>,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub tenant_id: Option<String>,
28 #[serde(default, skip_serializing_if = "ProtocolExtensions::is_empty")]
29 pub extensions: ProtocolExtensions,
30}
31
32#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
34#[serde(rename_all = "camelCase")]
35pub struct MerchantRef {
36 pub merchant_id: String,
37 pub legal_name: String,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub display_name: Option<String>,
40 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub statement_descriptor: Option<String>,
42 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub country_code: Option<String>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub website: Option<String>,
46 #[serde(default, skip_serializing_if = "ProtocolExtensions::is_empty")]
47 pub extensions: ProtocolExtensions,
48}
49
50#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct PaymentProcessorRef {
54 pub processor_id: String,
55 pub name: String,
56 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub processor_type: Option<String>,
58 #[serde(default, skip_serializing_if = "ProtocolExtensions::is_empty")]
59 pub extensions: ProtocolExtensions,
60}