1use std::fmt::Display;
4
5use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
9pub struct AddressID(String);
10
11impl<T: Display> From<T> for AddressID {
12 fn from(value: T) -> Self {
13 AddressID(value.to_string())
14 }
15}
16
17impl AsRef<str> for AddressID {
18 fn as_ref(&self) -> &str {
19 &self.0
20 }
21}
22
23#[derive(Clone, Debug, Serialize, Deserialize)]
25pub struct CustomerID(String);
26
27impl<T: Display> From<T> for CustomerID {
28 fn from(value: T) -> Self {
29 CustomerID(value.to_string())
30 }
31}
32
33impl AsRef<str> for CustomerID {
34 fn as_ref(&self) -> &str {
35 &self.0
36 }
37}
38
39#[derive(Clone, Debug, Serialize, Deserialize)]
41pub struct AdjustmentID(String);
42
43#[derive(Clone, Debug, Serialize, Deserialize)]
45pub struct TransactionID(String);
46
47#[derive(Clone, Debug, Serialize, Deserialize)]
49pub struct SubscriptionID(String);
50
51#[derive(Clone, Debug, Serialize, Deserialize)]
53pub struct TransactionItemID(String);
54
55#[derive(Clone, Debug, Serialize, Deserialize)]
57pub struct AdjustmentItemID(String);
58
59#[derive(Clone, Debug, Serialize, Deserialize)]
61pub struct BusinessID(String);
62
63#[derive(Clone, Debug, Serialize, Deserialize)]
65pub struct PaymentMethodID(String);
66
67#[derive(Clone, Debug, Serialize, Deserialize)]
69pub struct CustomerPortalSessionID(String);
70
71#[derive(Clone, Debug, Serialize, Deserialize)]
73pub struct DiscountID(String);
74
75impl<T: Display> From<T> for DiscountID {
76 fn from(value: T) -> Self {
77 DiscountID(value.to_string())
78 }
79}
80
81impl AsRef<str> for DiscountID {
82 fn as_ref(&self) -> &str {
83 &self.0
84 }
85}
86
87#[derive(Clone, Debug, Serialize, Deserialize)]
89pub struct DiscountCode(String);
90
91#[derive(Clone, Debug, Serialize, Deserialize)]
93pub struct EventID(String);
94
95#[derive(Clone, Debug, Serialize, Deserialize)]
97pub struct PriceID(String);
98
99impl<T: Display> From<T> for PriceID {
100 fn from(value: T) -> Self {
101 PriceID(value.to_string())
102 }
103}
104
105impl AsRef<str> for PriceID {
106 fn as_ref(&self) -> &str {
107 &self.0
108 }
109}
110
111#[derive(Clone, Debug, Serialize, Deserialize)]
113pub struct ProductID(pub String);
114
115impl<T: Display> From<T> for ProductID {
116 fn from(value: T) -> Self {
117 ProductID(value.to_string())
118 }
119}
120
121impl AsRef<str> for ProductID {
123 fn as_ref(&self) -> &str {
124 &self.0
125 }
126}
127
128#[derive(Clone, Debug, Serialize, Deserialize)]
130pub struct NotificationID(String);
131
132#[derive(Clone, Debug, Serialize, Deserialize)]
134pub struct NotificationSettingID(String);
135
136#[derive(Clone, Debug, Serialize, Deserialize)]
138pub struct NotificationLogID(String);
139
140#[derive(Clone, Debug, Serialize, Deserialize)]
142pub struct EndpointSecretKey(String);
143
144#[derive(Clone, Debug, Serialize, Deserialize)]
146pub struct PaddleID(String);
147
148#[derive(Clone, Debug, Serialize, Deserialize)]
150pub struct SimulationEventID(String);
151
152#[derive(Clone, Debug, Serialize, Deserialize)]
154pub struct SimulationRunID(String);
155
156#[derive(Clone, Debug, Serialize, Deserialize)]
158pub struct SimulationID(String);
159
160#[derive(Clone, Debug, Serialize, Deserialize)]
162pub struct InvoiceId(String);