@@ -2,6 +2,7 @@ package purchase
2
2
3
3
import (
4
4
"github.com/chargebee/chargebee-go/v3/enum"
5
+ contractTermEnum "github.com/chargebee/chargebee-go/v3/models/contractterm/enum"
5
6
)
6
7
7
8
type Purchase struct {
@@ -19,8 +20,11 @@ type CreateRequestParams struct {
19
20
ShippingAddresses []* CreateShippingAddressParams `json:"shipping_addresses,omitempty"`
20
21
Discounts []* CreateDiscountParams `json:"discounts,omitempty"`
21
22
SubscriptionInfo []* CreateSubscriptionInfoParams `json:"subscription_info,omitempty"`
23
+ ContractTerms []* CreateContractTermParams `json:"contract_terms,omitempty"`
22
24
InvoiceInfo * CreateInvoiceInfoParams `json:"invoice_info,omitempty"`
25
+ InstallmentInfo * CreateInstallmentInfoParams `json:"installment_info,omitempty"`
23
26
CustomerId string `json:"customer_id"`
27
+ PaymentSourceId string `json:"payment_source_id,omitempty"`
24
28
}
25
29
type CreatePurchaseItemParams struct {
26
30
Index * int32 `json:"index"`
@@ -64,21 +68,32 @@ type CreateDiscountParams struct {
64
68
IncludedInMrr * bool `json:"included_in_mrr,omitempty"`
65
69
}
66
70
type CreateSubscriptionInfoParams struct {
67
- Index * int32 `json:"index"`
68
- SubscriptionId string `json:"subscription_id,omitempty"`
69
- BillingCycles * int32 `json:"billing_cycles,omitempty"`
70
- MetaData map [string ]interface {} `json:"meta_data,omitempty"`
71
+ Index * int32 `json:"index"`
72
+ SubscriptionId string `json:"subscription_id,omitempty"`
73
+ BillingCycles * int32 `json:"billing_cycles,omitempty"`
74
+ ContractTermBillingCycleOnRenewal * int32 `json:"contract_term_billing_cycle_on_renewal,omitempty"`
75
+ MetaData map [string ]interface {} `json:"meta_data,omitempty"`
76
+ }
77
+ type CreateContractTermParams struct {
78
+ Index * int32 `json:"index"`
79
+ ActionAtTermEnd contractTermEnum.ActionAtTermEnd `json:"action_at_term_end,omitempty"`
80
+ CancellationCutoffPeriod * int32 `json:"cancellation_cutoff_period,omitempty"`
71
81
}
72
82
type CreateInvoiceInfoParams struct {
73
83
PoNumber string `json:"po_number,omitempty"`
74
84
Notes string `json:"notes,omitempty"`
75
85
}
86
+ type CreateInstallmentInfoParams struct {
87
+ ConfigId string `json:"config_id,omitempty"`
88
+ Amount * int64 `json:"amount,omitempty"`
89
+ }
76
90
type EstimateRequestParams struct {
77
91
PurchaseItems []* EstimatePurchaseItemParams `json:"purchase_items,omitempty"`
78
92
ItemTiers []* EstimateItemTierParams `json:"item_tiers,omitempty"`
79
93
ShippingAddresses []* EstimateShippingAddressParams `json:"shipping_addresses,omitempty"`
80
94
Discounts []* EstimateDiscountParams `json:"discounts,omitempty"`
81
95
SubscriptionInfo []* EstimateSubscriptionInfoParams `json:"subscription_info,omitempty"`
96
+ ContractTerms []* EstimateContractTermParams `json:"contract_terms,omitempty"`
82
97
Customer * EstimateCustomerParams `json:"customer,omitempty"`
83
98
BillingAddress * EstimateBillingAddressParams `json:"billing_address,omitempty"`
84
99
ClientProfileId string `json:"client_profile_id,omitempty"`
@@ -126,9 +141,15 @@ type EstimateDiscountParams struct {
126
141
IncludedInMrr * bool `json:"included_in_mrr,omitempty"`
127
142
}
128
143
type EstimateSubscriptionInfoParams struct {
129
- Index * int32 `json:"index"`
130
- SubscriptionId string `json:"subscription_id,omitempty"`
131
- BillingCycles * int32 `json:"billing_cycles,omitempty"`
144
+ Index * int32 `json:"index"`
145
+ SubscriptionId string `json:"subscription_id,omitempty"`
146
+ BillingCycles * int32 `json:"billing_cycles,omitempty"`
147
+ ContractTermBillingCycleOnRenewal * int32 `json:"contract_term_billing_cycle_on_renewal,omitempty"`
148
+ }
149
+ type EstimateContractTermParams struct {
150
+ Index * int32 `json:"index"`
151
+ ActionAtTermEnd contractTermEnum.ActionAtTermEnd `json:"action_at_term_end,omitempty"`
152
+ CancellationCutoffPeriod * int32 `json:"cancellation_cutoff_period,omitempty"`
132
153
}
133
154
type EstimateCustomerParams struct {
134
155
VatNumber string `json:"vat_number,omitempty"`
0 commit comments