// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.29.0 // source: line_items.sql package db import ( "context" "database/sql" ) const createLineItem = `-- name: CreateLineItem :execresult INSERT INTO line_items ( item_number, ` + "`" + `option` + "`" + `, quantity, title, description, document_id, product_id, has_text_prices, has_price, unit_price_string, gross_price_string, costing_id, gross_unit_price, net_unit_price, discount_percent, discount_amount_unit, discount_amount_total, gross_price, net_price ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ` type CreateLineItemParams struct { ItemNumber string `json:"item_number"` Option bool `json:"option"` Quantity string `json:"quantity"` Title string `json:"title"` Description string `json:"description"` DocumentID int32 `json:"document_id"` ProductID sql.NullInt32 `json:"product_id"` HasTextPrices bool `json:"has_text_prices"` HasPrice int8 `json:"has_price"` UnitPriceString sql.NullString `json:"unit_price_string"` GrossPriceString sql.NullString `json:"gross_price_string"` CostingID sql.NullInt32 `json:"costing_id"` GrossUnitPrice sql.NullString `json:"gross_unit_price"` NetUnitPrice sql.NullString `json:"net_unit_price"` DiscountPercent sql.NullString `json:"discount_percent"` DiscountAmountUnit sql.NullString `json:"discount_amount_unit"` DiscountAmountTotal sql.NullString `json:"discount_amount_total"` GrossPrice sql.NullString `json:"gross_price"` NetPrice sql.NullString `json:"net_price"` } func (q *Queries) CreateLineItem(ctx context.Context, arg CreateLineItemParams) (sql.Result, error) { return q.db.ExecContext(ctx, createLineItem, arg.ItemNumber, arg.Option, arg.Quantity, arg.Title, arg.Description, arg.DocumentID, arg.ProductID, arg.HasTextPrices, arg.HasPrice, arg.UnitPriceString, arg.GrossPriceString, arg.CostingID, arg.GrossUnitPrice, arg.NetUnitPrice, arg.DiscountPercent, arg.DiscountAmountUnit, arg.DiscountAmountTotal, arg.GrossPrice, arg.NetPrice, ) } const deleteLineItem = `-- name: DeleteLineItem :exec DELETE FROM line_items WHERE id = ? ` func (q *Queries) DeleteLineItem(ctx context.Context, id int32) error { _, err := q.db.ExecContext(ctx, deleteLineItem, id) return err } const getLineItem = `-- name: GetLineItem :one SELECT id, item_number, ` + "`" + `option` + "`" + `, quantity, title, description, document_id, product_id, has_text_prices, has_price, unit_price_string, gross_price_string, costing_id, gross_unit_price, net_unit_price, discount_percent, discount_amount_unit, discount_amount_total, gross_price, net_price FROM line_items WHERE id = ? LIMIT 1 ` func (q *Queries) GetLineItem(ctx context.Context, id int32) (LineItem, error) { row := q.db.QueryRowContext(ctx, getLineItem, id) var i LineItem err := row.Scan( &i.ID, &i.ItemNumber, &i.Option, &i.Quantity, &i.Title, &i.Description, &i.DocumentID, &i.ProductID, &i.HasTextPrices, &i.HasPrice, &i.UnitPriceString, &i.GrossPriceString, &i.CostingID, &i.GrossUnitPrice, &i.NetUnitPrice, &i.DiscountPercent, &i.DiscountAmountUnit, &i.DiscountAmountTotal, &i.GrossPrice, &i.NetPrice, ) return i, err } const getLineItemsByProduct = `-- name: GetLineItemsByProduct :many SELECT id, item_number, ` + "`" + `option` + "`" + `, quantity, title, description, document_id, product_id, has_text_prices, has_price, unit_price_string, gross_price_string, costing_id, gross_unit_price, net_unit_price, discount_percent, discount_amount_unit, discount_amount_total, gross_price, net_price FROM line_items WHERE product_id = ? ORDER BY item_number ASC ` func (q *Queries) GetLineItemsByProduct(ctx context.Context, productID sql.NullInt32) ([]LineItem, error) { rows, err := q.db.QueryContext(ctx, getLineItemsByProduct, productID) if err != nil { return nil, err } defer rows.Close() items := []LineItem{} for rows.Next() { var i LineItem if err := rows.Scan( &i.ID, &i.ItemNumber, &i.Option, &i.Quantity, &i.Title, &i.Description, &i.DocumentID, &i.ProductID, &i.HasTextPrices, &i.HasPrice, &i.UnitPriceString, &i.GrossPriceString, &i.CostingID, &i.GrossUnitPrice, &i.NetUnitPrice, &i.DiscountPercent, &i.DiscountAmountUnit, &i.DiscountAmountTotal, &i.GrossPrice, &i.NetPrice, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getLineItemsTable = `-- name: GetLineItemsTable :many SELECT li.id, li.item_number, li.` + "`" + `option` + "`" + `, li.quantity, li.title, li.description, li.document_id, li.product_id, li.has_text_prices, li.has_price, li.unit_price_string, li.gross_price_string, li.costing_id, li.gross_unit_price, li.net_unit_price, li.discount_percent, li.discount_amount_unit, li.discount_amount_total, li.gross_price, li.net_price, p.title as product_title, p.model_number FROM line_items li LEFT JOIN products p ON li.product_id = p.id WHERE li.document_id = ? ORDER BY li.item_number ASC ` type GetLineItemsTableRow struct { ID int32 `json:"id"` ItemNumber string `json:"item_number"` Option bool `json:"option"` Quantity string `json:"quantity"` Title string `json:"title"` Description string `json:"description"` DocumentID int32 `json:"document_id"` ProductID sql.NullInt32 `json:"product_id"` HasTextPrices bool `json:"has_text_prices"` HasPrice int8 `json:"has_price"` UnitPriceString sql.NullString `json:"unit_price_string"` GrossPriceString sql.NullString `json:"gross_price_string"` CostingID sql.NullInt32 `json:"costing_id"` GrossUnitPrice sql.NullString `json:"gross_unit_price"` NetUnitPrice sql.NullString `json:"net_unit_price"` DiscountPercent sql.NullString `json:"discount_percent"` DiscountAmountUnit sql.NullString `json:"discount_amount_unit"` DiscountAmountTotal sql.NullString `json:"discount_amount_total"` GrossPrice sql.NullString `json:"gross_price"` NetPrice sql.NullString `json:"net_price"` ProductTitle sql.NullString `json:"product_title"` ModelNumber sql.NullString `json:"model_number"` } func (q *Queries) GetLineItemsTable(ctx context.Context, documentID int32) ([]GetLineItemsTableRow, error) { rows, err := q.db.QueryContext(ctx, getLineItemsTable, documentID) if err != nil { return nil, err } defer rows.Close() items := []GetLineItemsTableRow{} for rows.Next() { var i GetLineItemsTableRow if err := rows.Scan( &i.ID, &i.ItemNumber, &i.Option, &i.Quantity, &i.Title, &i.Description, &i.DocumentID, &i.ProductID, &i.HasTextPrices, &i.HasPrice, &i.UnitPriceString, &i.GrossPriceString, &i.CostingID, &i.GrossUnitPrice, &i.NetUnitPrice, &i.DiscountPercent, &i.DiscountAmountUnit, &i.DiscountAmountTotal, &i.GrossPrice, &i.NetPrice, &i.ProductTitle, &i.ModelNumber, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const getMaxItemNumber = `-- name: GetMaxItemNumber :one SELECT COALESCE(MAX(item_number), 0) as max_item_number FROM line_items WHERE document_id = ? ` func (q *Queries) GetMaxItemNumber(ctx context.Context, documentID int32) (interface{}, error) { row := q.db.QueryRowContext(ctx, getMaxItemNumber, documentID) var max_item_number interface{} err := row.Scan(&max_item_number) return max_item_number, err } const listLineItems = `-- name: ListLineItems :many SELECT id, item_number, ` + "`" + `option` + "`" + `, quantity, title, description, document_id, product_id, has_text_prices, has_price, unit_price_string, gross_price_string, costing_id, gross_unit_price, net_unit_price, discount_percent, discount_amount_unit, discount_amount_total, gross_price, net_price FROM line_items ORDER BY item_number ASC LIMIT ? OFFSET ? ` type ListLineItemsParams struct { Limit int32 `json:"limit"` Offset int32 `json:"offset"` } func (q *Queries) ListLineItems(ctx context.Context, arg ListLineItemsParams) ([]LineItem, error) { rows, err := q.db.QueryContext(ctx, listLineItems, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []LineItem{} for rows.Next() { var i LineItem if err := rows.Scan( &i.ID, &i.ItemNumber, &i.Option, &i.Quantity, &i.Title, &i.Description, &i.DocumentID, &i.ProductID, &i.HasTextPrices, &i.HasPrice, &i.UnitPriceString, &i.GrossPriceString, &i.CostingID, &i.GrossUnitPrice, &i.NetUnitPrice, &i.DiscountPercent, &i.DiscountAmountUnit, &i.DiscountAmountTotal, &i.GrossPrice, &i.NetPrice, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listLineItemsByDocument = `-- name: ListLineItemsByDocument :many SELECT id, item_number, ` + "`" + `option` + "`" + `, quantity, title, description, document_id, product_id, has_text_prices, has_price, unit_price_string, gross_price_string, costing_id, gross_unit_price, net_unit_price, discount_percent, discount_amount_unit, discount_amount_total, gross_price, net_price FROM line_items WHERE document_id = ? ORDER BY item_number ASC ` func (q *Queries) ListLineItemsByDocument(ctx context.Context, documentID int32) ([]LineItem, error) { rows, err := q.db.QueryContext(ctx, listLineItemsByDocument, documentID) if err != nil { return nil, err } defer rows.Close() items := []LineItem{} for rows.Next() { var i LineItem if err := rows.Scan( &i.ID, &i.ItemNumber, &i.Option, &i.Quantity, &i.Title, &i.Description, &i.DocumentID, &i.ProductID, &i.HasTextPrices, &i.HasPrice, &i.UnitPriceString, &i.GrossPriceString, &i.CostingID, &i.GrossUnitPrice, &i.NetUnitPrice, &i.DiscountPercent, &i.DiscountAmountUnit, &i.DiscountAmountTotal, &i.GrossPrice, &i.NetPrice, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Close(); err != nil { return nil, err } if err := rows.Err(); err != nil { return nil, err } return items, nil } const updateLineItem = `-- name: UpdateLineItem :exec UPDATE line_items SET item_number = ?, ` + "`" + `option` + "`" + ` = ?, quantity = ?, title = ?, description = ?, document_id = ?, product_id = ?, has_text_prices = ?, has_price = ?, unit_price_string = ?, gross_price_string = ?, costing_id = ?, gross_unit_price = ?, net_unit_price = ?, discount_percent = ?, discount_amount_unit = ?, discount_amount_total = ?, gross_price = ?, net_price = ? WHERE id = ? ` type UpdateLineItemParams struct { ItemNumber string `json:"item_number"` Option bool `json:"option"` Quantity string `json:"quantity"` Title string `json:"title"` Description string `json:"description"` DocumentID int32 `json:"document_id"` ProductID sql.NullInt32 `json:"product_id"` HasTextPrices bool `json:"has_text_prices"` HasPrice int8 `json:"has_price"` UnitPriceString sql.NullString `json:"unit_price_string"` GrossPriceString sql.NullString `json:"gross_price_string"` CostingID sql.NullInt32 `json:"costing_id"` GrossUnitPrice sql.NullString `json:"gross_unit_price"` NetUnitPrice sql.NullString `json:"net_unit_price"` DiscountPercent sql.NullString `json:"discount_percent"` DiscountAmountUnit sql.NullString `json:"discount_amount_unit"` DiscountAmountTotal sql.NullString `json:"discount_amount_total"` GrossPrice sql.NullString `json:"gross_price"` NetPrice sql.NullString `json:"net_price"` ID int32 `json:"id"` } func (q *Queries) UpdateLineItem(ctx context.Context, arg UpdateLineItemParams) error { _, err := q.db.ExecContext(ctx, updateLineItem, arg.ItemNumber, arg.Option, arg.Quantity, arg.Title, arg.Description, arg.DocumentID, arg.ProductID, arg.HasTextPrices, arg.HasPrice, arg.UnitPriceString, arg.GrossPriceString, arg.CostingID, arg.GrossUnitPrice, arg.NetUnitPrice, arg.DiscountPercent, arg.DiscountAmountUnit, arg.DiscountAmountTotal, arg.GrossPrice, arg.NetPrice, arg.ID, ) return err } const updateLineItemPrices = `-- name: UpdateLineItemPrices :exec UPDATE line_items SET gross_unit_price = ?, net_unit_price = ?, gross_price = ?, net_price = ? WHERE id = ? ` type UpdateLineItemPricesParams struct { GrossUnitPrice sql.NullString `json:"gross_unit_price"` NetUnitPrice sql.NullString `json:"net_unit_price"` GrossPrice sql.NullString `json:"gross_price"` NetPrice sql.NullString `json:"net_price"` ID int32 `json:"id"` } func (q *Queries) UpdateLineItemPrices(ctx context.Context, arg UpdateLineItemPricesParams) error { _, err := q.db.ExecContext(ctx, updateLineItemPrices, arg.GrossUnitPrice, arg.NetUnitPrice, arg.GrossPrice, arg.NetPrice, arg.ID, ) return err }