// 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 blaze_models

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

import (
	"strconv"

	"github.com/go-openapi/errors"
	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// TransactionByIDResponse transaction by Id response
//
// swagger:model TransactionByIdResponse
type TransactionByIDResponse struct {

	// active
	Active bool `json:"active,omitempty"`

	// address update
	AddressUpdate bool `json:"addressUpdate,omitempty"`

	// assigned
	Assigned bool `json:"assigned,omitempty"`

	// assigned employee Id
	AssignedEmployeeID string `json:"assignedEmployeeId,omitempty"`

	// cart
	Cart *TransactionByIDResponseCart `json:"cart,omitempty"`

	// checkin time
	CheckinTime int64 `json:"checkinTime,omitempty"`

	// checkout type
	CheckoutType string `json:"checkoutType,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// complete after
	CompleteAfter int64 `json:"completeAfter,omitempty"`

	// completed time
	CompletedTime int64 `json:"completedTime,omitempty"`

	// create onfleet task
	CreateOnfleetTask bool `json:"createOnfleetTask,omitempty"`

	// create tookan task
	CreateTookanTask bool `json:"createTookanTask,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// created by Id
	CreatedByID string `json:"createdById,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// delivery address
	DeliveryAddress *TransactionByIDResponseDeliveryAddress `json:"deliveryAddress,omitempty"`

	// delivery date
	DeliveryDate int64 `json:"deliveryDate,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// end route date
	EndRouteDate int64 `json:"endRouteDate,omitempty"`

	// end time
	EndTime int64 `json:"endTime,omitempty"`

	// eta
	Eta float64 `json:"eta,omitempty"`

	// fulfilling fulfillment
	FulfillingFulfillment bool `json:"fulfillingFulfillment,omitempty"`

	// fulfillment step
	FulfillmentStep string `json:"fulfillmentStep,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// loc
	Loc []float64 `json:"loc"`

	// locked
	Locked bool `json:"locked,omitempty"`

	// member Id
	MemberID string `json:"memberId,omitempty"`

	// member signature
	MemberSignature *TransactionByIDResponseMemberSignature `json:"memberSignature,omitempty"`

	// memo
	Memo string `json:"memo,omitempty"`

	// metrc delivery submit status
	MetrcDeliverySubmitStatus string `json:"metrcDeliverySubmitStatus,omitempty"`

	// metrc delivery submit time
	MetrcDeliverySubmitTime int64 `json:"metrcDeliverySubmitTime,omitempty"`

	// metrc Id
	MetrcID float64 `json:"metrcId,omitempty"`

	// metrc sale time
	MetrcSaleTime string `json:"metrcSaleTime,omitempty"`

	// metrc submission complete time
	MetrcSubmissionCompleteTime int64 `json:"metrcSubmissionCompleteTime,omitempty"`

	// metrc submission delete time
	MetrcSubmissionDeleteTime int64 `json:"metrcSubmissionDeleteTime,omitempty"`

	// mileage
	Mileage float64 `json:"mileage,omitempty"`

	// mileage calculated
	MileageCalculated bool `json:"mileageCalculated,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// on fleet error
	OnFleetError string `json:"onFleetError,omitempty"`

	// on fleet task Id
	OnFleetTaskID string `json:"onFleetTaskId,omitempty"`

	// order tags
	OrderTags []string `json:"orderTags"`

	// override inventory Id
	OverrideInventoryID string `json:"overrideInventoryId,omitempty"`

	// packed by
	PackedBy string `json:"packedBy,omitempty"`

	// packed date
	PackedDate float64 `json:"packedDate,omitempty"`

	// paid
	Paid bool `json:"paid,omitempty"`

	// paying with payment card
	PayingWithPaymentCard bool `json:"payingWithPaymentCard,omitempty"`

	// payment edited time
	PaymentEditedTime int64 `json:"paymentEditedTime,omitempty"`

	// points earned
	PointsEarned float64 `json:"pointsEarned,omitempty"`

	// prepared by
	PreparedBy string `json:"preparedBy,omitempty"`

	// preparing fulfillment
	PreparingFulfillment bool `json:"preparingFulfillment,omitempty"`

	// priority
	Priority float64 `json:"priority,omitempty"`

	// processed time
	ProcessedTime int64 `json:"processedTime,omitempty"`

	// queue type
	QueueType string `json:"queueType,omitempty"`

	// refund payment options
	RefundPaymentOptions []string `json:"refundPaymentOptions"`

	// routing
	Routing bool `json:"routing,omitempty"`

	// seller Id
	SellerID string `json:"sellerId,omitempty"`

	// seller terminal Id
	SellerTerminalID string `json:"sellerTerminalId,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// short Id
	ShortID string `json:"shortId,omitempty"`

	// start route date
	StartRouteDate float64 `json:"startRouteDate,omitempty"`

	// start time
	StartTime int64 `json:"startTime,omitempty"`

	// state
	State float64 `json:"state,omitempty"`

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

	// terminal Id
	TerminalID string `json:"terminalId,omitempty"`

	// time zone
	TimeZone string `json:"timeZone,omitempty"`

	// trace submit status
	TraceSubmitStatus string `json:"traceSubmitStatus,omitempty"`

	// tracking status
	TrackingStatus string `json:"trackingStatus,omitempty"`

	// trans no
	TransNo string `json:"transNo,omitempty"`

	// trans type
	TransType string `json:"transType,omitempty"`

	// transaction refund status
	TransactionRefundStatus string `json:"transactionRefundStatus,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by Id response
func (m *TransactionByIDResponse) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateCart(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateDeliveryAddress(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateMemberSignature(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponse) validateCart(formats strfmt.Registry) error {

	if swag.IsZero(m.Cart) { // not required
		return nil
	}

	if m.Cart != nil {
		if err := m.Cart.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponse) validateDeliveryAddress(formats strfmt.Registry) error {

	if swag.IsZero(m.DeliveryAddress) { // not required
		return nil
	}

	if m.DeliveryAddress != nil {
		if err := m.DeliveryAddress.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("deliveryAddress")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponse) validateMemberSignature(formats strfmt.Registry) error {

	if swag.IsZero(m.MemberSignature) { // not required
		return nil
	}

	if m.MemberSignature != nil {
		if err := m.MemberSignature.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("memberSignature")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCart transaction by ID response cart
//
// swagger:model TransactionByIDResponseCart
type TransactionByIDResponseCart struct {

	// adjustment amount
	AdjustmentAmount float64 `json:"adjustmentAmount,omitempty"`

	// after tax discount
	AfterTaxDiscount float64 `json:"afterTaxDiscount,omitempty"`

	// after tax discount notes
	AfterTaxDiscountNotes string `json:"afterTaxDiscountNotes,omitempty"`

	// applied after tax discount
	AppliedAfterTaxDiscount float64 `json:"appliedAfterTaxDiscount,omitempty"`

	// balance due
	BalanceDue float64 `json:"balanceDue,omitempty"`

	// calc cart discount
	CalcCartDiscount float64 `json:"calcCartDiscount,omitempty"`

	// cart discount notes
	CartDiscountNotes string `json:"cartDiscountNotes,omitempty"`

	// cash received
	CashReceived float64 `json:"cashReceived,omitempty"`

	// change due
	ChangeDue float64 `json:"changeDue,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// consumer type
	ConsumerType string `json:"consumerType,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// credit card fee
	CreditCardFee float64 `json:"creditCardFee,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// delivery discount
	DeliveryDiscount float64 `json:"deliveryDiscount,omitempty"`

	// delivery discount type
	DeliveryDiscountType string `json:"deliveryDiscountType,omitempty"`

	// delivery fee
	DeliveryFee float64 `json:"deliveryFee,omitempty"`

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

	// discount type
	DiscountType string `json:"discountType,omitempty"`

	// enable credit card fee
	EnableCreditCardFee bool `json:"enableCreditCardFee,omitempty"`

	// enable delivery fee
	EnableDeliveryFee bool `json:"enableDeliveryFee,omitempty"`

	// final refund amt
	FinalRefundAmt float64 `json:"finalRefundAmt,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// items
	Items []*TransactionByIDResponseCartItemsItems0 `json:"items"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// payment option
	PaymentOption string `json:"paymentOption,omitempty"`

	// payment type
	PaymentType string `json:"paymentType,omitempty"`

	// point spent
	PointSpent float64 `json:"pointSpent,omitempty"`

	// promo code
	PromoCode string `json:"promoCode,omitempty"`

	// promotion req logs
	PromotionReqLogs []*TransactionByIDResponseCartPromotionReqLogsItems0 `json:"promotionReqLogs"`

	// promotion reqs
	PromotionReqs []*TransactionByIDResponseCartPromotionReqsItems0 `json:"promotionReqs"`

	// refund amount
	RefundAmount float64 `json:"refundAmount,omitempty"`

	// refund option
	RefundOption string `json:"refundOption,omitempty"`

	// refund order item requests
	RefundOrderItemRequests []string `json:"refundOrderItemRequests"`

	// request refund amt
	RequestRefundAmt float64 `json:"requestRefundAmt,omitempty"`

	// round amt
	RoundAmt float64 `json:"roundAmt,omitempty"`

	// storage location
	StorageLocation string `json:"storageLocation,omitempty"`

	// sub total
	SubTotal float64 `json:"subTotal,omitempty"`

	// sub total discount
	SubTotalDiscount float64 `json:"subTotalDiscount,omitempty"`

	// tax
	Tax float64 `json:"tax,omitempty"`

	// tax result
	TaxResult *TransactionByIDResponseCartTaxResult `json:"taxResult,omitempty"`

	// tax round off type
	TaxRoundOffType string `json:"taxRoundOffType,omitempty"`

	// tax table
	TaxTable *TransactionByIDResponseCartTaxTable `json:"taxTable,omitempty"`

	// tip amount
	TipAmount float64 `json:"tipAmount,omitempty"`

	// total
	Total float64 `json:"total,omitempty"`

	// total a l excise tax
	TotalALExciseTax float64 `json:"totalALExciseTax,omitempty"`

	// total calc tax
	TotalCalcTax float64 `json:"totalCalcTax,omitempty"`

	// total discount
	TotalDiscount float64 `json:"totalDiscount,omitempty"`

	// total excise tax
	TotalExciseTax float64 `json:"totalExciseTax,omitempty"`

	// total pre calc tax
	TotalPreCalcTax float64 `json:"totalPreCalcTax,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart
func (m *TransactionByIDResponseCart) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateItems(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validatePromotionReqLogs(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validatePromotionReqs(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateTaxResult(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateTaxTable(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponseCart) validateItems(formats strfmt.Registry) error {

	if swag.IsZero(m.Items) { // not required
		return nil
	}

	for i := 0; i < len(m.Items); i++ {
		if swag.IsZero(m.Items[i]) { // not required
			continue
		}

		if m.Items[i] != nil {
			if err := m.Items[i].Validate(formats); err != nil {
				if ve, ok := err.(*errors.Validation); ok {
					return ve.ValidateName("cart" + "." + "items" + "." + strconv.Itoa(i))
				}
				return err
			}
		}

	}

	return nil
}

func (m *TransactionByIDResponseCart) validatePromotionReqLogs(formats strfmt.Registry) error {

	if swag.IsZero(m.PromotionReqLogs) { // not required
		return nil
	}

	for i := 0; i < len(m.PromotionReqLogs); i++ {
		if swag.IsZero(m.PromotionReqLogs[i]) { // not required
			continue
		}

		if m.PromotionReqLogs[i] != nil {
			if err := m.PromotionReqLogs[i].Validate(formats); err != nil {
				if ve, ok := err.(*errors.Validation); ok {
					return ve.ValidateName("cart" + "." + "promotionReqLogs" + "." + strconv.Itoa(i))
				}
				return err
			}
		}

	}

	return nil
}

func (m *TransactionByIDResponseCart) validatePromotionReqs(formats strfmt.Registry) error {

	if swag.IsZero(m.PromotionReqs) { // not required
		return nil
	}

	for i := 0; i < len(m.PromotionReqs); i++ {
		if swag.IsZero(m.PromotionReqs[i]) { // not required
			continue
		}

		if m.PromotionReqs[i] != nil {
			if err := m.PromotionReqs[i].Validate(formats); err != nil {
				if ve, ok := err.(*errors.Validation); ok {
					return ve.ValidateName("cart" + "." + "promotionReqs" + "." + strconv.Itoa(i))
				}
				return err
			}
		}

	}

	return nil
}

func (m *TransactionByIDResponseCart) validateTaxResult(formats strfmt.Registry) error {

	if swag.IsZero(m.TaxResult) { // not required
		return nil
	}

	if m.TaxResult != nil {
		if err := m.TaxResult.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxResult")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCart) validateTaxTable(formats strfmt.Registry) error {

	if swag.IsZero(m.TaxTable) { // not required
		return nil
	}

	if m.TaxTable != nil {
		if err := m.TaxTable.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxTable")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0 transaction by ID response cart items items0
//
// swagger:model TransactionByIDResponseCartItemsItems0
type TransactionByIDResponseCartItemsItems0 struct {

	// available discount qty
	AvailableDiscountQty float64 `json:"availableDiscountQty,omitempty"`

	// calc cultivation tax
	CalcCultivationTax float64 `json:"calcCultivationTax,omitempty"`

	// calc discount
	CalcDiscount float64 `json:"calcDiscount,omitempty"`

	// calc pre tax
	CalcPreTax float64 `json:"calcPreTax,omitempty"`

	// calc tax
	CalcTax float64 `json:"calcTax,omitempty"`

	// cogs
	Cogs float64 `json:"cogs,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// cost
	Cost float64 `json:"cost,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

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

	// discount notes
	DiscountNotes string `json:"discountNotes,omitempty"`

	// discount type
	DiscountType string `json:"discountType,omitempty"`

	// discounted qty
	DiscountedQty float64 `json:"discountedQty,omitempty"`

	// excise tax
	ExciseTax float64 `json:"exciseTax,omitempty"`

	// final price
	FinalPrice float64 `json:"finalPrice,omitempty"`

	// finalized
	Finalized bool `json:"finalized,omitempty"`

	// fulfilled
	Fulfilled bool `json:"fulfilled,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// ignore mix match
	IgnoreMixMatch bool `json:"ignoreMixMatch,omitempty"`

	// mix matched
	MixMatched bool `json:"mixMatched,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// order item Id
	OrderItemID string `json:"orderItemId,omitempty"`

	// orig quantity
	OrigQuantity float64 `json:"origQuantity,omitempty"`

	// override price
	OverridePrice float64 `json:"overridePrice,omitempty"`

	// per unit refund amt
	PerUnitRefundAmt float64 `json:"perUnitRefundAmt,omitempty"`

	// prepared qty
	PreparedQty float64 `json:"preparedQty,omitempty"`

	// product Id
	ProductID string `json:"productId,omitempty"`

	// promotion reqs
	PromotionReqs []float64 `json:"promotionReqs"`

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

	// quantity logs
	QuantityLogs []*TransactionByIDResponseCartItemsItems0QuantityLogsItems0 `json:"quantityLogs"`

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

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax result
	TaxResult *TransactionByIDResponseCartItemsItems0TaxResult `json:"taxResult,omitempty"`

	// tax table
	TaxTable *TransactionByIDResponseCartItemsItems0TaxTable `json:"taxTable,omitempty"`

	// tax type
	TaxType string `json:"taxType,omitempty"`

	// total refund amount
	TotalRefundAmount float64 `json:"totalRefundAmount,omitempty"`

	// total refund qty
	TotalRefundQty float64 `json:"totalRefundQty,omitempty"`

	// unit price
	UnitPrice float64 `json:"unitPrice,omitempty"`

	// unit qty
	UnitQty float64 `json:"unitQty,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`

	// use unit qty
	UseUnitQty bool `json:"useUnitQty,omitempty"`

	// weight key
	WeightKey string `json:"weightKey,omitempty"`
}

// Validate validates this transaction by ID response cart items items0
func (m *TransactionByIDResponseCartItemsItems0) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateQuantityLogs(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateTaxResult(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateTaxTable(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponseCartItemsItems0) validateQuantityLogs(formats strfmt.Registry) error {

	if swag.IsZero(m.QuantityLogs) { // not required
		return nil
	}

	for i := 0; i < len(m.QuantityLogs); i++ {
		if swag.IsZero(m.QuantityLogs[i]) { // not required
			continue
		}

		if m.QuantityLogs[i] != nil {
			if err := m.QuantityLogs[i].Validate(formats); err != nil {
				if ve, ok := err.(*errors.Validation); ok {
					return ve.ValidateName("quantityLogs" + "." + strconv.Itoa(i))
				}
				return err
			}
		}

	}

	return nil
}

func (m *TransactionByIDResponseCartItemsItems0) validateTaxResult(formats strfmt.Registry) error {

	if swag.IsZero(m.TaxResult) { // not required
		return nil
	}

	if m.TaxResult != nil {
		if err := m.TaxResult.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxResult")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartItemsItems0) validateTaxTable(formats strfmt.Registry) error {

	if swag.IsZero(m.TaxTable) { // not required
		return nil
	}

	if m.TaxTable != nil {
		if err := m.TaxTable.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxTable")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0QuantityLogsItems0 transaction by ID response cart items items0 quantity logs items0
//
// swagger:model TransactionByIDResponseCartItemsItems0QuantityLogsItems0
type TransactionByIDResponseCartItemsItems0QuantityLogsItems0 struct {

	// batch Id
	BatchID string `json:"batchId,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// inventory Id
	InventoryID string `json:"inventoryId,omitempty"`

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

// Validate validates this transaction by ID response cart items items0 quantity logs items0
func (m *TransactionByIDResponseCartItemsItems0QuantityLogsItems0) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxResult transaction by ID response cart items items0 tax result
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxResult
type TransactionByIDResponseCartItemsItems0TaxResult struct {

	// created
	Created int64 `json:"created,omitempty"`

	// cultivation tax result
	CultivationTaxResult *TransactionByIDResponseCartItemsItems0TaxResultCultivationTaxResult `json:"cultivationTaxResult,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// total a l excise tax
	TotalALExciseTax float64 `json:"totalALExciseTax,omitempty"`

	// total a l post excise tax
	TotalALPostExciseTax float64 `json:"totalALPostExciseTax,omitempty"`

	// total city pre tax
	TotalCityPreTax float64 `json:"totalCityPreTax,omitempty"`

	// total city tax
	TotalCityTax float64 `json:"totalCityTax,omitempty"`

	// total county pre tax
	TotalCountyPreTax float64 `json:"totalCountyPreTax,omitempty"`

	// total county tax
	TotalCountyTax float64 `json:"totalCountyTax,omitempty"`

	// total excise tax
	TotalExciseTax float64 `json:"totalExciseTax,omitempty"`

	// total fed pre tax
	TotalFedPreTax float64 `json:"totalFedPreTax,omitempty"`

	// total fed tax
	TotalFedTax float64 `json:"totalFedTax,omitempty"`

	// total n a l pre excise tax
	TotalNALPreExciseTax float64 `json:"totalNALPreExciseTax,omitempty"`

	// total post calc tax
	TotalPostCalcTax float64 `json:"totalPostCalcTax,omitempty"`

	// total pre calc tax
	TotalPreCalcTax float64 `json:"totalPreCalcTax,omitempty"`

	// total state pre tax
	TotalStatePreTax float64 `json:"totalStatePreTax,omitempty"`

	// total state tax
	TotalStateTax float64 `json:"totalStateTax,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax result
func (m *TransactionByIDResponseCartItemsItems0TaxResult) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateCultivationTaxResult(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponseCartItemsItems0TaxResult) validateCultivationTaxResult(formats strfmt.Registry) error {

	if swag.IsZero(m.CultivationTaxResult) { // not required
		return nil
	}

	if m.CultivationTaxResult != nil {
		if err := m.CultivationTaxResult.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxResult" + "." + "cultivationTaxResult")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxResultCultivationTaxResult transaction by ID response cart items items0 tax result cultivation tax result
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxResultCultivationTaxResult
type TransactionByIDResponseCartItemsItems0TaxResultCultivationTaxResult struct {

	// flower tax oz
	FlowerTaxOz float64 `json:"flowerTaxOz,omitempty"`

	// leaf tax oz
	LeafTaxOz float64 `json:"leafTaxOz,omitempty"`

	// total cultivation tax
	TotalCultivationTax float64 `json:"totalCultivationTax,omitempty"`

	// total flower oz
	TotalFlowerOz float64 `json:"totalFlowerOz,omitempty"`

	// total flower tax
	TotalFlowerTax float64 `json:"totalFlowerTax,omitempty"`

	// total leaf oz
	TotalLeafOz float64 `json:"totalLeafOz,omitempty"`

	// total leaf tax
	TotalLeafTax float64 `json:"totalLeafTax,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax result cultivation tax result
func (m *TransactionByIDResponseCartItemsItems0TaxResultCultivationTaxResult) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxTable transaction by ID response cart items items0 tax table
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxTable
type TransactionByIDResponseCartItemsItems0TaxTable struct {

	// active
	Active bool `json:"active,omitempty"`

	// city tax
	CityTax *TransactionByIDResponseCartItemsItems0TaxTableCityTax `json:"cityTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// consumer type
	ConsumerType string `json:"consumerType,omitempty"`

	// county tax
	CountyTax *TransactionByIDResponseCartItemsItems0TaxTableCountyTax `json:"countyTax,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// federal tax
	FederalTax *TransactionByIDResponseCartItemsItems0TaxTableFederalTax `json:"federalTax,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// name
	Name string `json:"name,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// state tax
	StateTax *TransactionByIDResponseCartItemsItems0TaxTableStateTax `json:"stateTax,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax type
	TaxType string `json:"taxType,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax table
func (m *TransactionByIDResponseCartItemsItems0TaxTable) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateCityTax(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateCountyTax(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateFederalTax(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateStateTax(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponseCartItemsItems0TaxTable) validateCityTax(formats strfmt.Registry) error {

	if swag.IsZero(m.CityTax) { // not required
		return nil
	}

	if m.CityTax != nil {
		if err := m.CityTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxTable" + "." + "cityTax")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartItemsItems0TaxTable) validateCountyTax(formats strfmt.Registry) error {

	if swag.IsZero(m.CountyTax) { // not required
		return nil
	}

	if m.CountyTax != nil {
		if err := m.CountyTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxTable" + "." + "countyTax")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartItemsItems0TaxTable) validateFederalTax(formats strfmt.Registry) error {

	if swag.IsZero(m.FederalTax) { // not required
		return nil
	}

	if m.FederalTax != nil {
		if err := m.FederalTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxTable" + "." + "federalTax")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartItemsItems0TaxTable) validateStateTax(formats strfmt.Registry) error {

	if swag.IsZero(m.StateTax) { // not required
		return nil
	}

	if m.StateTax != nil {
		if err := m.StateTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("taxTable" + "." + "stateTax")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxTableCityTax transaction by ID response cart items items0 tax table city tax
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxTableCityTax
type TransactionByIDResponseCartItemsItems0TaxTableCityTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax table city tax
func (m *TransactionByIDResponseCartItemsItems0TaxTableCityTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxTableCountyTax transaction by ID response cart items items0 tax table county tax
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxTableCountyTax
type TransactionByIDResponseCartItemsItems0TaxTableCountyTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax table county tax
func (m *TransactionByIDResponseCartItemsItems0TaxTableCountyTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxTableFederalTax transaction by ID response cart items items0 tax table federal tax
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxTableFederalTax
type TransactionByIDResponseCartItemsItems0TaxTableFederalTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax table federal tax
func (m *TransactionByIDResponseCartItemsItems0TaxTableFederalTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartItemsItems0TaxTableStateTax transaction by ID response cart items items0 tax table state tax
//
// swagger:model TransactionByIDResponseCartItemsItems0TaxTableStateTax
type TransactionByIDResponseCartItemsItems0TaxTableStateTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart items items0 tax table state tax
func (m *TransactionByIDResponseCartItemsItems0TaxTableStateTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartPromotionReqLogsItems0 transaction by ID response cart promotion req logs items0
//
// swagger:model TransactionByIDResponseCartPromotionReqLogsItems0
type TransactionByIDResponseCartPromotionReqLogsItems0 struct {

	// amount
	Amount float64 `json:"amount,omitempty"`

	// assigned
	Assigned bool `json:"assigned,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// promotion Id
	PromotionID string `json:"promotionId,omitempty"`

	// promotion type
	PromotionType string `json:"promotionType,omitempty"`

	// stackable
	Stackable bool `json:"stackable,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart promotion req logs items0
func (m *TransactionByIDResponseCartPromotionReqLogsItems0) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartPromotionReqsItems0 transaction by ID response cart promotion reqs items0
//
// swagger:model TransactionByIDResponseCartPromotionReqsItems0
type TransactionByIDResponseCartPromotionReqsItems0 struct {

	// assigned
	Assigned bool `json:"assigned,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// promotion Id
	PromotionID string `json:"promotionId,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart promotion reqs items0
func (m *TransactionByIDResponseCartPromotionReqsItems0) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartTaxResult transaction by ID response cart tax result
//
// swagger:model TransactionByIDResponseCartTaxResult
type TransactionByIDResponseCartTaxResult struct {

	// created
	Created int64 `json:"created,omitempty"`

	// cultivation tax result
	CultivationTaxResult *TransactionByIDResponseCartTaxResultCultivationTaxResult `json:"cultivationTaxResult,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// tax mapping info
	TaxMappingInfo *TransactionByIDResponseCartTaxResultTaxMappingInfo `json:"taxMappingInfo,omitempty"`

	// total a l excise tax
	TotalALExciseTax float64 `json:"totalALExciseTax,omitempty"`

	// total a l post excise tax
	TotalALPostExciseTax float64 `json:"totalALPostExciseTax,omitempty"`

	// total city pre tax
	TotalCityPreTax float64 `json:"totalCityPreTax,omitempty"`

	// total city tax
	TotalCityTax float64 `json:"totalCityTax,omitempty"`

	// total county pre tax
	TotalCountyPreTax float64 `json:"totalCountyPreTax,omitempty"`

	// total county tax
	TotalCountyTax float64 `json:"totalCountyTax,omitempty"`

	// total excise tax
	TotalExciseTax float64 `json:"totalExciseTax,omitempty"`

	// total fed pre tax
	TotalFedPreTax float64 `json:"totalFedPreTax,omitempty"`

	// total fed tax
	TotalFedTax float64 `json:"totalFedTax,omitempty"`

	// total n a l pre excise tax
	TotalNALPreExciseTax float64 `json:"totalNALPreExciseTax,omitempty"`

	// total post calc tax
	TotalPostCalcTax float64 `json:"totalPostCalcTax,omitempty"`

	// total pre calc tax
	TotalPreCalcTax float64 `json:"totalPreCalcTax,omitempty"`

	// total state pre tax
	TotalStatePreTax float64 `json:"totalStatePreTax,omitempty"`

	// total state tax
	TotalStateTax float64 `json:"totalStateTax,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart tax result
func (m *TransactionByIDResponseCartTaxResult) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateCultivationTaxResult(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateTaxMappingInfo(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponseCartTaxResult) validateCultivationTaxResult(formats strfmt.Registry) error {

	if swag.IsZero(m.CultivationTaxResult) { // not required
		return nil
	}

	if m.CultivationTaxResult != nil {
		if err := m.CultivationTaxResult.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxResult" + "." + "cultivationTaxResult")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartTaxResult) validateTaxMappingInfo(formats strfmt.Registry) error {

	if swag.IsZero(m.TaxMappingInfo) { // not required
		return nil
	}

	if m.TaxMappingInfo != nil {
		if err := m.TaxMappingInfo.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxResult" + "." + "taxMappingInfo")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCartTaxResultCultivationTaxResult transaction by ID response cart tax result cultivation tax result
//
// swagger:model TransactionByIDResponseCartTaxResultCultivationTaxResult
type TransactionByIDResponseCartTaxResultCultivationTaxResult struct {

	// flower tax oz
	FlowerTaxOz float64 `json:"flowerTaxOz,omitempty"`

	// leaf tax oz
	LeafTaxOz float64 `json:"leafTaxOz,omitempty"`

	// plant tax oz
	PlantTaxOz float64 `json:"plantTaxOz,omitempty"`

	// total cultivation tax
	TotalCultivationTax float64 `json:"totalCultivationTax,omitempty"`

	// total flower oz
	TotalFlowerOz float64 `json:"totalFlowerOz,omitempty"`

	// total flower tax
	TotalFlowerTax float64 `json:"totalFlowerTax,omitempty"`

	// total leaf oz
	TotalLeafOz float64 `json:"totalLeafOz,omitempty"`

	// total leaf tax
	TotalLeafTax float64 `json:"totalLeafTax,omitempty"`

	// total plant oz
	TotalPlantOz float64 `json:"totalPlantOz,omitempty"`

	// total plant tax
	TotalPlantTax float64 `json:"totalPlantTax,omitempty"`
}

// Validate validates this transaction by ID response cart tax result cultivation tax result
func (m *TransactionByIDResponseCartTaxResultCultivationTaxResult) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartTaxResultTaxMappingInfo transaction by ID response cart tax result tax mapping info
//
// swagger:model TransactionByIDResponseCartTaxResultTaxMappingInfo
type TransactionByIDResponseCartTaxResultTaxMappingInfo struct {

	// city
	City string `json:"City,omitempty"`

	// county
	County string `json:"County,omitempty"`

	// federal
	Federal string `json:"Federal,omitempty"`

	// state
	State string `json:"State,omitempty"`
}

// Validate validates this transaction by ID response cart tax result tax mapping info
func (m *TransactionByIDResponseCartTaxResultTaxMappingInfo) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartTaxTable transaction by ID response cart tax table
//
// swagger:model TransactionByIDResponseCartTaxTable
type TransactionByIDResponseCartTaxTable struct {

	// active
	Active bool `json:"active,omitempty"`

	// city tax
	CityTax *TransactionByIDResponseCartTaxTableCityTax `json:"cityTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// consumer type
	ConsumerType string `json:"consumerType,omitempty"`

	// county tax
	CountyTax *TransactionByIDResponseCartTaxTableCountyTax `json:"countyTax,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// federal tax
	FederalTax *TransactionByIDResponseCartTaxTableFederalTax `json:"federalTax,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// name
	Name string `json:"name,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// state tax
	StateTax *TransactionByIDResponseCartTaxTableStateTax `json:"stateTax,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax type
	TaxType string `json:"taxType,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart tax table
func (m *TransactionByIDResponseCartTaxTable) Validate(formats strfmt.Registry) error {
	var res []error

	if err := m.validateCityTax(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateCountyTax(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateFederalTax(formats); err != nil {
		res = append(res, err)
	}

	if err := m.validateStateTax(formats); err != nil {
		res = append(res, err)
	}

	if len(res) > 0 {
		return errors.CompositeValidationError(res...)
	}
	return nil
}

func (m *TransactionByIDResponseCartTaxTable) validateCityTax(formats strfmt.Registry) error {

	if swag.IsZero(m.CityTax) { // not required
		return nil
	}

	if m.CityTax != nil {
		if err := m.CityTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxTable" + "." + "cityTax")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartTaxTable) validateCountyTax(formats strfmt.Registry) error {

	if swag.IsZero(m.CountyTax) { // not required
		return nil
	}

	if m.CountyTax != nil {
		if err := m.CountyTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxTable" + "." + "countyTax")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartTaxTable) validateFederalTax(formats strfmt.Registry) error {

	if swag.IsZero(m.FederalTax) { // not required
		return nil
	}

	if m.FederalTax != nil {
		if err := m.FederalTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxTable" + "." + "federalTax")
			}
			return err
		}
	}

	return nil
}

func (m *TransactionByIDResponseCartTaxTable) validateStateTax(formats strfmt.Registry) error {

	if swag.IsZero(m.StateTax) { // not required
		return nil
	}

	if m.StateTax != nil {
		if err := m.StateTax.Validate(formats); err != nil {
			if ve, ok := err.(*errors.Validation); ok {
				return ve.ValidateName("cart" + "." + "taxTable" + "." + "stateTax")
			}
			return err
		}
	}

	return nil
}

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

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

// TransactionByIDResponseCartTaxTableCityTax transaction by ID response cart tax table city tax
//
// swagger:model TransactionByIDResponseCartTaxTableCityTax
type TransactionByIDResponseCartTaxTableCityTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart tax table city tax
func (m *TransactionByIDResponseCartTaxTableCityTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartTaxTableCountyTax transaction by ID response cart tax table county tax
//
// swagger:model TransactionByIDResponseCartTaxTableCountyTax
type TransactionByIDResponseCartTaxTableCountyTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart tax table county tax
func (m *TransactionByIDResponseCartTaxTableCountyTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartTaxTableFederalTax transaction by ID response cart tax table federal tax
//
// swagger:model TransactionByIDResponseCartTaxTableFederalTax
type TransactionByIDResponseCartTaxTableFederalTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart tax table federal tax
func (m *TransactionByIDResponseCartTaxTableFederalTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseCartTaxTableStateTax transaction by ID response cart tax table state tax
//
// swagger:model TransactionByIDResponseCartTaxTableStateTax
type TransactionByIDResponseCartTaxTableStateTax struct {

	// active
	Active bool `json:"active,omitempty"`

	// active excise tax
	ActiveExciseTax bool `json:"activeExciseTax,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// compound
	Compound bool `json:"compound,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// dirty
	Dirty bool `json:"dirty,omitempty"`

	// display name
	DisplayName string `json:"displayName,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// shop Id
	ShopID string `json:"shopId,omitempty"`

	// tax order
	TaxOrder string `json:"taxOrder,omitempty"`

	// tax rate
	TaxRate float64 `json:"taxRate,omitempty"`

	// territory
	Territory string `json:"territory,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response cart tax table state tax
func (m *TransactionByIDResponseCartTaxTableStateTax) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseDeliveryAddress transaction by ID response delivery address
//
// swagger:model TransactionByIDResponseDeliveryAddress
type TransactionByIDResponseDeliveryAddress struct {

	// address
	Address string `json:"address,omitempty"`

	// address line2
	AddressLine2 string `json:"addressLine2,omitempty"`

	// city
	City string `json:"city,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// country
	Country string `json:"country,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// state
	State string `json:"state,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`

	// zip code
	ZipCode string `json:"zipCode,omitempty"`
}

// Validate validates this transaction by ID response delivery address
func (m *TransactionByIDResponseDeliveryAddress) Validate(formats strfmt.Registry) error {
	return nil
}

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

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

// TransactionByIDResponseMemberSignature transaction by ID response member signature
//
// swagger:model TransactionByIDResponseMemberSignature
type TransactionByIDResponseMemberSignature struct {

	// active
	Active bool `json:"active,omitempty"`

	// company Id
	CompanyID string `json:"companyId,omitempty"`

	// created
	Created int64 `json:"created,omitempty"`

	// deleted
	Deleted bool `json:"deleted,omitempty"`

	// id
	ID string `json:"id,omitempty"`

	// key
	Key string `json:"key,omitempty"`

	// large URL
	LargeURL string `json:"largeURL,omitempty"`

	// medium URL
	MediumURL string `json:"mediumURL,omitempty"`

	// modified
	Modified int64 `json:"modified,omitempty"`

	// name
	Name string `json:"name,omitempty"`

	// priority
	Priority float64 `json:"priority,omitempty"`

	// public URL
	PublicURL string `json:"publicURL,omitempty"`

	// secured
	Secured bool `json:"secured,omitempty"`

	// thumb URL
	ThumbURL string `json:"thumbURL,omitempty"`

	// updated
	Updated bool `json:"updated,omitempty"`
}

// Validate validates this transaction by ID response member signature
func (m *TransactionByIDResponseMemberSignature) Validate(formats strfmt.Registry) error {
	return nil
}

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

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