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.
137 lines
3.8 KiB
Go
137 lines
3.8 KiB
Go
// Code generated by sqlc. DO NOT EDIT.
|
|
// versions:
|
|
// sqlc v1.29.0
|
|
// source: subscription_items.sql
|
|
|
|
package billing
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
const createSubscriptionItem = `-- name: CreateSubscriptionItem :one
|
|
INSERT INTO core.subscription_items (subscription_id, product_id, price_id, quantity)
|
|
VALUES ($1, $2, $3, $4)
|
|
RETURNING subscription_item_id, subscription_id, product_id, price_id, quantity, created_at, updated_at
|
|
`
|
|
|
|
type CreateSubscriptionItemParams struct {
|
|
SubscriptionID string `json:"subscription_id"`
|
|
ProductID string `json:"product_id"`
|
|
PriceID string `json:"price_id"`
|
|
Quantity int32 `json:"quantity"`
|
|
}
|
|
|
|
func (q *Queries) CreateSubscriptionItem(ctx context.Context, arg CreateSubscriptionItemParams) (SubscriptionItem, error) {
|
|
row := q.db.QueryRowContext(ctx, createSubscriptionItem,
|
|
arg.SubscriptionID,
|
|
arg.ProductID,
|
|
arg.PriceID,
|
|
arg.Quantity,
|
|
)
|
|
var i SubscriptionItem
|
|
err := row.Scan(
|
|
&i.SubscriptionItemID,
|
|
&i.SubscriptionID,
|
|
&i.ProductID,
|
|
&i.PriceID,
|
|
&i.Quantity,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSubscriptionItemByID = `-- name: GetSubscriptionItemByID :one
|
|
SELECT subscription_item_id, subscription_id, product_id, price_id, quantity, created_at, updated_at FROM core.subscription_items
|
|
WHERE subscription_item_id = $1
|
|
`
|
|
|
|
func (q *Queries) GetSubscriptionItemByID(ctx context.Context, subscriptionItemID string) (SubscriptionItem, error) {
|
|
row := q.db.QueryRowContext(ctx, getSubscriptionItemByID, subscriptionItemID)
|
|
var i SubscriptionItem
|
|
err := row.Scan(
|
|
&i.SubscriptionItemID,
|
|
&i.SubscriptionID,
|
|
&i.ProductID,
|
|
&i.PriceID,
|
|
&i.Quantity,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSubscriptionItemsBySubscriptionID = `-- name: GetSubscriptionItemsBySubscriptionID :many
|
|
SELECT subscription_item_id, subscription_id, product_id, price_id, quantity, created_at, updated_at FROM core.subscription_items
|
|
WHERE subscription_id = $1
|
|
ORDER BY created_at ASC
|
|
`
|
|
|
|
func (q *Queries) GetSubscriptionItemsBySubscriptionID(ctx context.Context, subscriptionID string) ([]SubscriptionItem, error) {
|
|
rows, err := q.db.QueryContext(ctx, getSubscriptionItemsBySubscriptionID, subscriptionID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []SubscriptionItem{}
|
|
for rows.Next() {
|
|
var i SubscriptionItem
|
|
if err := rows.Scan(
|
|
&i.SubscriptionItemID,
|
|
&i.SubscriptionID,
|
|
&i.ProductID,
|
|
&i.PriceID,
|
|
&i.Quantity,
|
|
&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
|
|
}
|
|
|
|
const updateSubscriptionItemPriceProduct = `-- name: UpdateSubscriptionItemPriceProduct :one
|
|
UPDATE core.subscription_items
|
|
SET product_id = $2, price_id = $3, quantity = $4
|
|
WHERE subscription_item_id = $1
|
|
RETURNING subscription_item_id, subscription_id, product_id, price_id, quantity, created_at, updated_at
|
|
`
|
|
|
|
type UpdateSubscriptionItemPriceProductParams struct {
|
|
SubscriptionItemID string `json:"subscription_item_id"`
|
|
ProductID string `json:"product_id"`
|
|
PriceID string `json:"price_id"`
|
|
Quantity int32 `json:"quantity"`
|
|
}
|
|
|
|
// Converge a core item row after an in-place Stripe price modification (paid->paid
|
|
// switch): the Stripe item id is unchanged but it now carries a new price/product.
|
|
func (q *Queries) UpdateSubscriptionItemPriceProduct(ctx context.Context, arg UpdateSubscriptionItemPriceProductParams) (SubscriptionItem, error) {
|
|
row := q.db.QueryRowContext(ctx, updateSubscriptionItemPriceProduct,
|
|
arg.SubscriptionItemID,
|
|
arg.ProductID,
|
|
arg.PriceID,
|
|
arg.Quantity,
|
|
)
|
|
var i SubscriptionItem
|
|
err := row.Scan(
|
|
&i.SubscriptionItemID,
|
|
&i.SubscriptionID,
|
|
&i.ProductID,
|
|
&i.PriceID,
|
|
&i.Quantity,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
)
|
|
return i, err
|
|
}
|