polar_rs/
enums.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Deserialize, Serialize)]
4#[serde(rename_all = "snake_case")]
5pub enum AmountType {
6    #[default]
7    Fixed,
8    Custom,
9    Free,
10    MeteredUnit,
11}
12
13#[derive(Deserialize)]
14#[serde(rename_all = "snake_case")]
15pub enum BenefitType {
16    Custom,
17    Discord,
18    GithubRepository,
19    Downloadables,
20    LicenseKeys,
21    MeterCredit,
22}
23
24#[derive(Deserialize)]
25#[serde(rename_all = "lowercase")]
26pub enum BillingAddressField {
27    Required,
28    Optional,
29    Disabled,
30}
31
32#[derive(Serialize)]
33#[serde(rename_all = "snake_case")]
34pub enum CheckoutSessionsSorting {
35    CreatedAt,
36    #[serde(rename = "-created_at")]
37    CreatedAtDesc,
38    ExpiresAt,
39    #[serde(rename = "-expires_at")]
40    ExpiresAtDesc,
41    Status,
42    #[serde(rename = "-status")]
43    StatusDesc,
44}
45
46#[derive(Deserialize, PartialEq, Serialize)]
47#[serde(rename_all = "lowercase")]
48pub enum CheckoutSessionStatus {
49    Open,
50    Expired,
51    Confirmed,
52    Succeeded,
53    Failed,
54}
55
56impl CheckoutSessionStatus {
57    pub fn is_succeeded(&self) -> bool {
58        *self == Self::Succeeded
59    }
60}
61
62#[derive(Deserialize, Serialize)]
63#[serde(rename_all = "snake_case")]
64pub enum CustomerCancellationReason {
65    CustomerService,
66    LowQuality,
67    MissingFeatures,
68    SwitchedService,
69    TooComplex,
70    TooExpensive,
71    Unused,
72    Other,
73}
74
75#[derive(Deserialize)]
76#[serde(rename_all = "lowercase")]
77pub enum CustomFieldType {
78    Text,
79    Number,
80    Date,
81    Checkbox,
82    Select,
83}
84
85#[derive(Deserialize)]
86#[serde(rename_all = "lowercase")]
87pub enum DiscountDuration {
88    Once,
89    Forever,
90    Repeating,
91}
92
93#[derive(Deserialize)]
94#[serde(rename_all = "lowercase")]
95pub enum DiscountType {
96    Fixed,
97    Percentage,
98}
99
100#[derive(Deserialize, PartialEq, Serialize)]
101#[serde(rename_all = "lowercase")]
102pub enum Interval {
103    Year,
104    Month,
105    Week,
106    Day,
107    Hour,
108}
109
110#[derive(Deserialize, Serialize)]
111#[serde(rename_all = "lowercase")]
112pub enum MeterAggregationFunc {
113    Count,
114    Sum,
115    Max,
116    Min,
117    Avg,
118}
119
120#[derive(Deserialize, Serialize)]
121#[serde(rename_all = "lowercase")]
122pub enum MeterFilterConjunction {
123    And,
124    Or,
125}
126
127#[derive(Deserialize, Serialize)]
128#[serde(rename_all = "snake_case")]
129pub enum MeterFilterOperator {
130    Eq,
131    Ne,
132    Gt,
133    Gte,
134    Lt,
135    Lte,
136    Like,
137    NotLike,
138}
139
140#[derive(Serialize)]
141#[serde(rename_all = "snake_case")]
142pub enum MetersSorting {
143    CreatedAt,
144    #[serde(rename = "-created_at")]
145    CreatedAtDesc,
146    Name,
147    #[serde(rename = "-name")]
148    NameDesc,
149}
150
151#[derive(Deserialize)]
152#[serde(rename_all = "lowercase")]
153pub enum PaymentProcessor {
154    Stripe,
155}
156
157#[derive(Deserialize)]
158#[serde(rename_all = "snake_case")]
159pub enum PriceType {
160    OneTime,
161    Recurring,
162}
163
164#[derive(Serialize)]
165#[serde(rename_all = "snake_case")]
166pub enum ProductsSorting {
167    CreatedAt,
168    #[serde(rename = "-created_at")]
169    CreatedAtDesc,
170    Name,
171    #[serde(rename = "-name")]
172    NameDesc,
173    PriceAmountType,
174    #[serde(rename = "-price_amount_type")]
175    PriceAmountTypeDesc,
176    PriceAmount,
177    #[serde(rename = "-price_amount")]
178    PriceAmountDesc,
179}
180
181#[derive(Deserialize, Serialize)]
182#[serde(rename_all = "lowercase")]
183pub enum ProrationBehavior {
184    Invoice,
185    Prorate,
186}
187
188#[derive(Deserialize, PartialEq, Serialize)]
189#[serde(rename_all = "lowercase")]
190pub enum RecurringInterval {
191    Month,
192    Year,
193}
194
195#[derive(Serialize)]
196#[serde(rename_all = "snake_case")]
197pub enum SubscriptionsSorting {
198    Customer,
199    #[serde(rename = "-customer")]
200    CustomerDesc,
201    Status,
202    #[serde(rename = "-status")]
203    StatusDesc,
204    StartedAt,
205    #[serde(rename = "-started_at")]
206    StartedAtDesc,
207    CurrentPeriodEnd,
208    #[serde(rename = "-current_period_end")]
209    CurrentPeriodEndDesc,
210    Amount,
211    #[serde(rename = "-amount")]
212    AmountDesc,
213    Product,
214    #[serde(rename = "-product")]
215    ProductDesc,
216    Discount,
217    #[serde(rename = "-discount")]
218    DiscountDesc,
219}
220
221#[derive(Deserialize)]
222#[serde(rename_all = "snake_case")]
223pub enum SubscriptionStatus {
224    Incomplete,
225    IncompleteExpired,
226    Trialing,
227    Active,
228    PastDue,
229    Cancelled,
230    Unpaid,
231}