// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial // SPDX-FileCopyrightText: 2025-2026 Christian Galo // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.29.0 // source: invoice_line_items.sql package billing import ( "context" "database/sql" "github.com/google/uuid" ) const createInvoiceLineItem = `-- name: CreateInvoiceLineItem :one INSERT INTO core.invoice_line_items ( invoice_id, subscription_item_id, price_id, amount, currency, description, quantity, period_start, period_end ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING line_item_id, invoice_id, subscription_item_id, price_id, amount, currency, description, quantity, period_start, period_end, created_at, updated_at ` type CreateInvoiceLineItemParams struct { InvoiceID string `json:"invoice_id"` SubscriptionItemID uuid.NullUUID `json:"subscription_item_id"` PriceID string `json:"price_id"` Amount int32 `json:"amount"` Currency string `json:"currency"` Description sql.NullString `json:"description"` Quantity int32 `json:"quantity"` PeriodStart sql.NullTime `json:"period_start"` PeriodEnd sql.NullTime `json:"period_end"` } func (q *Queries) CreateInvoiceLineItem(ctx context.Context, arg CreateInvoiceLineItemParams) (InvoiceLineItem, error) { row := q.db.QueryRowContext(ctx, createInvoiceLineItem, arg.InvoiceID, arg.SubscriptionItemID, arg.PriceID, arg.Amount, arg.Currency, arg.Description, arg.Quantity, arg.PeriodStart, arg.PeriodEnd, ) var i InvoiceLineItem err := row.Scan( &i.LineItemID, &i.InvoiceID, &i.SubscriptionItemID, &i.PriceID, &i.Amount, &i.Currency, &i.Description, &i.Quantity, &i.PeriodStart, &i.PeriodEnd, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getInvoiceLineItemsByInvoiceID = `-- name: GetInvoiceLineItemsByInvoiceID :many SELECT line_item_id, invoice_id, subscription_item_id, price_id, amount, currency, description, quantity, period_start, period_end, created_at, updated_at FROM core.invoice_line_items WHERE invoice_id = $1 ORDER BY created_at ASC ` func (q *Queries) GetInvoiceLineItemsByInvoiceID(ctx context.Context, invoiceID string) ([]InvoiceLineItem, error) { rows, err := q.db.QueryContext(ctx, getInvoiceLineItemsByInvoiceID, invoiceID) if err != nil { return nil, err } defer rows.Close() items := []InvoiceLineItem{} for rows.Next() { var i InvoiceLineItem if err := rows.Scan( &i.LineItemID, &i.InvoiceID, &i.SubscriptionItemID, &i.PriceID, &i.Amount, &i.Currency, &i.Description, &i.Quantity, &i.PeriodStart, &i.PeriodEnd, &i.CreatedAt, &i.UpdatedAt, ); 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 }