github.com/Files-com/files-sdk-go/v3@v3.1.81/invoicelineitem.go (about)

     1  package files_sdk
     2  
     3  import (
     4  	"encoding/json"
     5  	"time"
     6  
     7  	lib "github.com/Files-com/files-sdk-go/v3/lib"
     8  )
     9  
    10  type InvoiceLineItem struct {
    11  	Amount         string     `json:"amount,omitempty" path:"amount,omitempty" url:"amount,omitempty"`
    12  	CreatedAt      *time.Time `json:"created_at,omitempty" path:"created_at,omitempty" url:"created_at,omitempty"`
    13  	Description    string     `json:"description,omitempty" path:"description,omitempty" url:"description,omitempty"`
    14  	Type           string     `json:"type,omitempty" path:"type,omitempty" url:"type,omitempty"`
    15  	ServiceEndAt   *time.Time `json:"service_end_at,omitempty" path:"service_end_at,omitempty" url:"service_end_at,omitempty"`
    16  	ServiceStartAt *time.Time `json:"service_start_at,omitempty" path:"service_start_at,omitempty" url:"service_start_at,omitempty"`
    17  	Plan           string     `json:"plan,omitempty" path:"plan,omitempty" url:"plan,omitempty"`
    18  	Site           string     `json:"site,omitempty" path:"site,omitempty" url:"site,omitempty"`
    19  }
    20  
    21  // Identifier no path or id
    22  
    23  type InvoiceLineItemCollection []InvoiceLineItem
    24  
    25  func (i *InvoiceLineItem) UnmarshalJSON(data []byte) error {
    26  	type invoiceLineItem InvoiceLineItem
    27  	var v invoiceLineItem
    28  	if err := json.Unmarshal(data, &v); err != nil {
    29  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, map[string]interface{}{})
    30  	}
    31  
    32  	*i = InvoiceLineItem(v)
    33  	return nil
    34  }
    35  
    36  func (i *InvoiceLineItemCollection) UnmarshalJSON(data []byte) error {
    37  	type invoiceLineItems InvoiceLineItemCollection
    38  	var v invoiceLineItems
    39  	if err := json.Unmarshal(data, &v); err != nil {
    40  		return lib.ErrorWithOriginalResponse{}.ProcessError(data, err, []map[string]interface{}{})
    41  	}
    42  
    43  	*i = InvoiceLineItemCollection(v)
    44  	return nil
    45  }
    46  
    47  func (i *InvoiceLineItemCollection) ToSlice() *[]interface{} {
    48  	ret := make([]interface{}, len(*i))
    49  	for i, v := range *i {
    50  		ret[i] = v
    51  	}
    52  
    53  	return &ret
    54  }