Squash the pre-production migration history into fresh core, fedwiki, and stripe baselines and reduce the canonical source list to those three streams. Update sqlc configs, generated queries, raw SQL, tests, and docs while keeping provider tables schema-qualified. BREAKING: existing local database volumes must be wiped because goose version history restarts from the new baselines.
108 lines
2.8 KiB
Go
108 lines
2.8 KiB
Go
// 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
|
|
}
|