42 lines
1.1 KiB
SQL
42 lines
1.1 KiB
SQL
-- name: CreateSubscription :one
|
|
INSERT INTO billing.subscriptions (billing_account_id, status, current_period_start, current_period_end)
|
|
VALUES ($1, $2, $3, $4)
|
|
RETURNING *;
|
|
|
|
-- name: GetSubscriptionByID :one
|
|
SELECT * FROM billing.subscriptions
|
|
WHERE subscription_id = $1;
|
|
|
|
-- name: GetSubscriptionsByBillingAccountID :many
|
|
SELECT * FROM billing.subscriptions
|
|
WHERE billing_account_id = $1
|
|
ORDER BY created_at DESC;
|
|
|
|
-- name: UpdateSubscriptionStatus :one
|
|
UPDATE billing.subscriptions
|
|
SET status = $2,
|
|
current_period_start = $3,
|
|
current_period_end = $4,
|
|
cancel_at_period_end = $5,
|
|
canceled_at = $6,
|
|
ended_at = $7
|
|
WHERE subscription_id = $1
|
|
RETURNING *;
|
|
|
|
-- name: ListSubscriptions :many
|
|
SELECT
|
|
s.subscription_id,
|
|
s.billing_account_id,
|
|
s.status,
|
|
s.current_period_start,
|
|
s.current_period_end,
|
|
s.cancel_at_period_end,
|
|
s.canceled_at,
|
|
s.ended_at,
|
|
s.created_at,
|
|
s.updated_at,
|
|
ba.name as billing_account_name
|
|
FROM billing.subscriptions s
|
|
JOIN billing.accounts ba ON s.billing_account_id = ba.billing_account_id
|
|
ORDER BY s.created_at DESC;
|