package app

import (
	"database/sql"

	"code.tnxs.net/taxnexus/lib/api/ops/ops_models"
)

// InvoiceItemActivityWrapper wraps the object with workflow params
type InvoiceItemActivityWrapper struct {
	Obj      ops_models.InvoiceItem
	APIKey   string
	SagaID   string
	SagaType string
}

// InvoiceItem is a large struct
type InvoiceItem struct {
	ID                  string
	COGS                float64
	CreatedByID         string
	CreatedDate         sql.NullTime
	Description         string
	Family              string
	InvoiceID           string
	LastModifiedByID    string
	LastModifiedDate    sql.NullTime
	ListPrice           float64
	MRCInterval         int64
	OrderItemID         string
	ParentFK            string
	ProductCode         string
	ProductName         string
	ProductID           string
	Quantity            float64
	QuoteItemID         string
	Ref                 string
	RejectedQuantity    float64
	ShippedQuantity     float64
	ShippingHandling    float64
	SKU                 string
	SubscriptionID      string
	Subtotal            float64
	TaxnexusCodeDisplay string
	TaxnexusCodeID      string
	TenantID            string
	TotalPrice          float64
	UnitPrice           float64
	Units               string
}

// ItemFamily defines a subtotal an a converged invoice
type ItemFamily struct {
	MonthlySubtotal  float64
	PurchaseSubtotal float64
	ItemCount        int64
	MonthlyAmount    string
	Name             string
	PurchaseAmount   string
}
