Documentation ¶
Overview ¶
Package invoice allows generating invoices from a filled report database.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Category ¶
type Category struct { Source string Target string Items []Item // Total represents the total accumulated cost per category. Total float64 }
Category represents a category of the invoice i.e. a namespace.
type Invoice ¶
type Invoice struct { Tenant Tenant PeriodStart time.Time PeriodEnd time.Time Categories []Category // Total represents the total accumulated cost of the invoice. Total float64 }
Invoice represents an invoice for a tenant.
type Item ¶
type Item struct { // Description describes the line item. Description string // QueryName is the name of the query that generated this line item QueryName string // Product describes the product this item is based on. ProductRef // Quantity represents the amount of the resource used. Quantity float64 // QuantityMin represents the minimum amount of the resource used. QuantityMin float64 // QuantityAvg represents the average amount of the resource used. QuantityAvg float64 // QuantityMax represents the maximum amount of the resource used. QuantityMax float64 // Unit represents the unit of the item. e.g. MiB Unit string // PricePerUnit represents the price per unit in Rappen PricePerUnit float64 // Discount represents a discount in percent. 0.3 discount equals price per unit * 0.7 Discount float64 // Total represents the total accumulated cost. // (hour1 * quantity * price per unit * discount) + (hour2 * quantity * price // per unit * discount) Total float64 // SubItems are entries created by the subqueries of the main invoice item. // The keys are the QueryNames of the sub items. SubItems map[string]SubItem }
Item represents a line in the invoice.
type ProductRef ¶
type ProductRef struct { Source string `db:"product_ref_source"` Target string `db:"product_ref_target"` }
ProductRef represents a product reference in the invoice.
type SubItem ¶ added in v0.5.0
type SubItem struct { // Description describes the line item. Description string // QueryName is the name of the query that generated this line item QueryName string // Quantity represents the amount of the resource used. Quantity float64 // QuantityMin represents the minimum amount of the resource used. QuantityMin float64 // QuantityAvg represents the average amount of the resource used. QuantityAvg float64 // QuantityMax represents the maximum amount of the resource used. QuantityMax float64 // Unit represents the unit of the item. e.g. MiB Unit string }
SubItem reflects additional information created by a subquery of the main invoice item
Click to show internal directories.
Click to hide internal directories.