// Code generated by go-swagger; DO NOT EDIT.

// All Code Copyright(c) 2018-2020 by Taxnexus, Inc.
// All rights reserved worldwide.
// Proprietary product; unlicensed use is not allowed

package sf_gate_models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// InvoiceItem invoice item
//
// swagger:model InvoiceItem
type InvoiceItem struct {

	// Census Tract
	CensusTract string `json:"census_tract,omitempty"`

	// Cost of Goods Sold
	Cogs float64 `json:"cogs,omitempty"`

	// Contract Number
	Contractid string `json:"contractid,omitempty"`

	// County
	Countyid string `json:"countyid,omitempty"`

	// Line Item Description
	Description string `json:"description,omitempty"`

	// Export Description
	Exportdescription string `json:"exportdescription,omitempty"`

	// Family
	Family string `json:"family,omitempty"`

	// Taxnexus Record Id Only; not used in POST
	ID string `json:"id,omitempty"`

	// Invoice
	Invoiceid string `json:"invoiceid,omitempty"`

	// Line
	Linenumber int64 `json:"linenumber,omitempty"`

	// List Price
	ListPrice float64 `json:"list_price,omitempty"`

	// Location
	Locationid string `json:"locationid,omitempty"`

	// Order Item
	Orderitemid string `json:"orderitemid,omitempty"`

	// UUID Reference the master record that owns this item
	Parentfk string `json:"parentfk,omitempty"`

	// Period
	Periodid string `json:"periodid,omitempty"`

	// Product Code
	Productcode string `json:"productcode,omitempty"`

	// Product
	Productid string `json:"productid,omitempty"`

	// Quantity
	Quantity float64 `json:"quantity,omitempty"`

	// Quote Line Item
	Quotelineitemid string `json:"quotelineitemid,omitempty"`

	// Source System identifier for this record, if any
	Ref string `json:"ref,omitempty"`

	// Rejected Quantity
	RejectedQuantity float64 `json:"rejected_quantity,omitempty"`

	// Revenue Account
	Revenueaccount float64 `json:"revenueaccount,omitempty"`

	// Seq
	Seq string `json:"seq,omitempty"`

	// Shipped Quantity
	ShippedQuantity float64 `json:"shipped_quantity,omitempty"`

	// Shipping & Handling
	Shippinghandling float64 `json:"shippinghandling,omitempty"`

	// SKU
	Sku string `json:"sku,omitempty"`

	// Subscription
	Subscriptionid string `json:"subscriptionid,omitempty"`

	// Subtotal
	Subtotal float64 `json:"subtotal,omitempty"`

	// Taxnexus Code
	Taxnexuscode string `json:"taxnexuscode,omitempty"`

	// tenant identifier
	Tenantid string `json:"tenantid,omitempty"`

	// Total Price
	Totalprice float64 `json:"totalprice,omitempty"`

	// Unit Price
	Unitprice float64 `json:"unitprice,omitempty"`
}

// Validate validates this invoice item
func (m *InvoiceItem) Validate(formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *InvoiceItem) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *InvoiceItem) UnmarshalBinary(b []byte) error {
	var res InvoiceItem
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
