go-wiki/vendor/github.com/stripe/stripe-go/taxrate.go
2020-03-20 00:19:27 +01:00

76 lines
2.7 KiB
Go

package stripe
import "encoding/json"
// TaxRateParams is the set of parameters that can be used when creating a tax rate.
// For more details see https://stripe.com/docs/api/tax_rates/create.
type TaxRateParams struct {
Params `form:"*"`
Active *bool `form:"active"`
Description *string `form:"description"`
DisplayName *string `form:"display_name"`
Inclusive *bool `form:"inclusive"`
Jurisdiction *string `form:"jurisdiction"`
Percentage *float64 `form:"percentage"`
}
// TaxRatePercentageRangeQueryParams are used to filter tax rates by specific percentage values.
type TaxRatePercentageRangeQueryParams struct {
GreaterThan float64 `form:"gt"`
GreaterThanOrEqual float64 `form:"gte"`
LesserThan float64 `form:"lt"`
LesserThanOrEqual float64 `form:"lte"`
}
// TaxRateListParams is the set of parameters that can be used when listing tax rates.
// For more detail see https://stripe.com/docs/api/tax_rates/list.
type TaxRateListParams struct {
ListParams `form:"*"`
Active *bool `form:"active"`
Created *int64 `form:"created"`
CreatedRange *RangeQueryParams `form:"created"`
Inclusive *bool `form:"inclusive"`
Percentage *float64 `form:"percentage"`
PercentageRange *TaxRatePercentageRangeQueryParams `form:"percentage"`
}
// TaxRate is the resource representing a Stripe tax rate.
// For more details see https://stripe.com/docs/api/tax_rates/object.
type TaxRate struct {
Active bool `json:"active"`
Created int64 `json:"created"`
Description string `json:"description"`
DisplayName string `json:"display_name"`
ID string `json:"id"`
Inclusive bool `json:"inclusive"`
Jurisdiction string `json:"jurisdiction"`
Livemode bool `json:"livemode"`
Metadata map[string]string `json:"metadata"`
Object string `json:"object"`
Percentage float64 `json:"percentage"`
}
// TaxRateList is a list of tax rates as retrieved from a list endpoint.
type TaxRateList struct {
ListMeta
Data []*TaxRate `json:"data"`
}
// UnmarshalJSON handles deserialization of a TaxRate.
// This custom unmarshaling is needed because the resulting
// property may be an id or the full struct if it was expanded.
func (c *TaxRate) UnmarshalJSON(data []byte) error {
if id, ok := ParseID(data); ok {
c.ID = id
return nil
}
type taxrate TaxRate
var v taxrate
if err := json.Unmarshal(data, &v); err != nil {
return err
}
*c = TaxRate(v)
return nil
}