// 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"
)

// OrderItem order item
//
// swagger:model OrderItem
type OrderItem struct {

	// Account
	Account interface{} `json:"account,omitempty"`

	// Activated?
	Activated bool `json:"activated,omitempty"`

	// Activated By
	Activatedby string `json:"activatedby,omitempty"`

	// Available Quantity
	Availablequantity float64 `json:"availablequantity,omitempty"`

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

	// Create Reservation?
	Createreservation bool `json:"createreservation,omitempty"`

	// Date Delivered
	Datedelivered string `json:"datedelivered,omitempty"`

	// Date Ordered
	Dateordered string `json:"dateordered,omitempty"`

	// Date Promised
	Datepromised string `json:"datepromised,omitempty"`

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

	// Discount
	Discount float64 `json:"discount,omitempty"`

	// End Date
	Enddate string `json:"enddate,omitempty"`

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

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

	// Inventory Tracking
	Inventorytracking bool `json:"inventorytracking,omitempty"`

	// Invoice Item
	Invoiceitemid string `json:"invoiceitemid,omitempty"`

	// Line Gross Amount
	Linegrossamount float64 `json:"linegrossamount,omitempty"`

	// Line Item Number
	Lineitemnumber int64 `json:"lineitemnumber,omitempty"`

	// List Price
	Listprice float64 `json:"listprice,omitempty"`

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

	// Order
	Orderid string `json:"orderid,omitempty"`

	// Order Product Number
	Orderitemnumber string `json:"orderitemnumber,omitempty"`

	// Original Order Product
	Originalorderitemid string `json:"originalorderitemid,omitempty"`

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

	// Posted?
	Posted bool `json:"posted,omitempty"`

	// Product
	Product2id string `json:"product2id,omitempty"`

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

	// Product Name
	Productname string `json:"productname,omitempty"`

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

	// Quantity On Hand
	Quantityonhand float64 `json:"quantityonhand,omitempty"`

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

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

	// Start Date
	Servicedate string `json:"servicedate,omitempty"`

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

	// Status
	Status string `json:"status,omitempty"`

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

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

	// Taxnexus Code
	Taxnexuscodeid string `json:"taxnexuscodeid,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 order item
func (m *OrderItem) Validate(formats strfmt.Registry) error {
	return nil
}

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

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