-
Notifications
You must be signed in to change notification settings - Fork 4
/
model_create_subscription_request_plan_details.go
92 lines (79 loc) · 3.51 KB
/
model_create_subscription_request_plan_details.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
Cashfree Payment Gateway APIs
Cashfree's Payment Gateway APIs provide developers with a streamlined pathway to integrate advanced payment processing capabilities into their applications, platforms and websites.
API version: 2023-08-01
Contact: [email protected]
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package cashfree_pg
import (
"encoding/json"
"strings"
)
// checks if the CreateSubscriptionRequestPlanDetails type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &CreateSubscriptionRequestPlanDetails{}
// CreateSubscriptionRequestPlanDetails struct for CreateSubscriptionRequestPlanDetails
type CreateSubscriptionRequestPlanDetails struct {
// The unique identifier used to create plan. You only need to pass this field if you had already created plan. Otherwise use the other fields here to define the plan.
PlanId *string `json:"plan_id,omitempty"`
// Specify plan name for easy reference.
PlanName *string `json:"plan_name,omitempty"`
// Possible values ON_DEMAND or PERIODIC. PERIODIC - Payments are triggered automatically at fixed intervals defined by the merchant. ON_DEMAND - Merchant needs to trigger/charge the customer explicitly with the required amount.
PlanType *string `json:"plan_type,omitempty"`
// INR by default.
PlanCurrency *string `json:"plan_currency,omitempty"`
// The amount to be charged for PERIODIC plan. This is a conditional parameter, only required for PERIODIC plans.
PlanAmount *float32 `json:"plan_amount,omitempty"`
// This is the maximum amount that can be charged on a subscription.
PlanMaxAmount *float32 `json:"plan_max_amount,omitempty"`
// Maximum number of debits set for the plan. The subscription will automatically change to COMPLETED status once this limit is reached.
PlanMaxCycles *int32 `json:"plan_max_cycles,omitempty"`
// Number of intervals of intervalType between every subscription payment. For example, to charge a customer bi-weekly use intervalType as “week” and intervals as 2. Required for PERIODIC plan. The default value is 1.
PlanIntervals *int32 `json:"plan_intervals,omitempty"`
// The type of interval for a PERIODIC plan like DAY, WEEK, MONTH, or YEAR. This is a conditional parameter only applicable for PERIODIC plans.
PlanIntervalType *string `json:"plan_interval_type,omitempty"`
// Note for the plan.
PlanNote *string `json:"plan_note,omitempty"`
}
func (o CreateSubscriptionRequestPlanDetails) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o CreateSubscriptionRequestPlanDetails) ToMap() (map[string]interface{}, error) {
strings.HasPrefix("cf", "cf")
toSerialize := map[string]interface{}{}
if !IsNil(o.PlanId) {
toSerialize["plan_id"] = o.PlanId
}
if !IsNil(o.PlanName) {
toSerialize["plan_name"] = o.PlanName
}
if !IsNil(o.PlanType) {
toSerialize["plan_type"] = o.PlanType
}
if !IsNil(o.PlanCurrency) {
toSerialize["plan_currency"] = o.PlanCurrency
}
if !IsNil(o.PlanAmount) {
toSerialize["plan_amount"] = o.PlanAmount
}
if !IsNil(o.PlanMaxAmount) {
toSerialize["plan_max_amount"] = o.PlanMaxAmount
}
if !IsNil(o.PlanMaxCycles) {
toSerialize["plan_max_cycles"] = o.PlanMaxCycles
}
if !IsNil(o.PlanIntervals) {
toSerialize["plan_intervals"] = o.PlanIntervals
}
if !IsNil(o.PlanIntervalType) {
toSerialize["plan_interval_type"] = o.PlanIntervalType
}
if !IsNil(o.PlanNote) {
toSerialize["plan_note"] = o.PlanNote
}
return toSerialize, nil
}