154 lines
5.1 KiB
Go
154 lines
5.1 KiB
Go
// 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: subscription_mappings.sql
|
|
|
|
package stripe
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
)
|
|
|
|
const countSubscriptionMappingsOutsideMode = `-- name: CountSubscriptionMappingsOutsideMode :one
|
|
SELECT COUNT(*) FROM stripe.subscription_mappings
|
|
WHERE livemode IS NOT NULL AND livemode <> $1::boolean
|
|
`
|
|
|
|
func (q *Queries) CountSubscriptionMappingsOutsideMode(ctx context.Context, keyLivemode bool) (int64, error) {
|
|
row := q.db.QueryRowContext(ctx, countSubscriptionMappingsOutsideMode, keyLivemode)
|
|
var count int64
|
|
err := row.Scan(&count)
|
|
return count, err
|
|
}
|
|
|
|
const getSubscriptionMappingByStripeID = `-- name: GetSubscriptionMappingByStripeID :one
|
|
SELECT subscription_id, stripe_subscription_id, sync_status, created_at, updated_at, livemode FROM stripe.subscription_mappings
|
|
WHERE stripe_subscription_id = $1
|
|
`
|
|
|
|
func (q *Queries) GetSubscriptionMappingByStripeID(ctx context.Context, stripeSubscriptionID sql.NullString) (SubscriptionMapping, error) {
|
|
row := q.db.QueryRowContext(ctx, getSubscriptionMappingByStripeID, stripeSubscriptionID)
|
|
var i SubscriptionMapping
|
|
err := row.Scan(
|
|
&i.SubscriptionID,
|
|
&i.StripeSubscriptionID,
|
|
&i.SyncStatus,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
&i.Livemode,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const getSubscriptionMappingBySubscriptionID = `-- name: GetSubscriptionMappingBySubscriptionID :one
|
|
SELECT subscription_id, stripe_subscription_id, sync_status, created_at, updated_at, livemode FROM stripe.subscription_mappings
|
|
WHERE subscription_id = $1
|
|
`
|
|
|
|
func (q *Queries) GetSubscriptionMappingBySubscriptionID(ctx context.Context, subscriptionID string) (SubscriptionMapping, error) {
|
|
row := q.db.QueryRowContext(ctx, getSubscriptionMappingBySubscriptionID, subscriptionID)
|
|
var i SubscriptionMapping
|
|
err := row.Scan(
|
|
&i.SubscriptionID,
|
|
&i.StripeSubscriptionID,
|
|
&i.SyncStatus,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
&i.Livemode,
|
|
)
|
|
return i, err
|
|
}
|
|
|
|
const listSubscriptionIDsOutsideMode = `-- name: ListSubscriptionIDsOutsideMode :many
|
|
SELECT subscription_id FROM stripe.subscription_mappings
|
|
WHERE livemode IS NOT NULL AND livemode <> $1::boolean
|
|
`
|
|
|
|
// The subscriptions the operator views exclude under the current key
|
|
// (stripe-environment-stamp D7). A NULL livemode is unverified and shows
|
|
// under either key, so it is not in this list.
|
|
func (q *Queries) ListSubscriptionIDsOutsideMode(ctx context.Context, keyLivemode bool) ([]string, error) {
|
|
rows, err := q.db.QueryContext(ctx, listSubscriptionIDsOutsideMode, keyLivemode)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
items := []string{}
|
|
for rows.Next() {
|
|
var subscription_id string
|
|
if err := rows.Scan(&subscription_id); err != nil {
|
|
return nil, err
|
|
}
|
|
items = append(items, subscription_id)
|
|
}
|
|
if err := rows.Close(); err != nil {
|
|
return nil, err
|
|
}
|
|
if err := rows.Err(); err != nil {
|
|
return nil, err
|
|
}
|
|
return items, nil
|
|
}
|
|
|
|
const updateSubscriptionMappingSyncStatus = `-- name: UpdateSubscriptionMappingSyncStatus :exec
|
|
UPDATE stripe.subscription_mappings
|
|
SET sync_status = $2, updated_at = NOW()
|
|
WHERE subscription_id = $1
|
|
`
|
|
|
|
type UpdateSubscriptionMappingSyncStatusParams struct {
|
|
SubscriptionID string `json:"subscription_id"`
|
|
SyncStatus string `json:"sync_status"`
|
|
}
|
|
|
|
func (q *Queries) UpdateSubscriptionMappingSyncStatus(ctx context.Context, arg UpdateSubscriptionMappingSyncStatusParams) error {
|
|
_, err := q.db.ExecContext(ctx, updateSubscriptionMappingSyncStatus, arg.SubscriptionID, arg.SyncStatus)
|
|
return err
|
|
}
|
|
|
|
const upsertSubscriptionMapping = `-- name: UpsertSubscriptionMapping :one
|
|
INSERT INTO stripe.subscription_mappings (subscription_id, stripe_subscription_id, sync_status, livemode)
|
|
VALUES ($1, $2, $3, $4)
|
|
ON CONFLICT (subscription_id) DO UPDATE
|
|
SET stripe_subscription_id = EXCLUDED.stripe_subscription_id,
|
|
sync_status = EXCLUDED.sync_status,
|
|
livemode = COALESCE(EXCLUDED.livemode, subscription_mappings.livemode),
|
|
updated_at = NOW()
|
|
RETURNING subscription_id, stripe_subscription_id, sync_status, created_at, updated_at, livemode
|
|
`
|
|
|
|
type UpsertSubscriptionMappingParams struct {
|
|
SubscriptionID string `json:"subscription_id"`
|
|
StripeSubscriptionID sql.NullString `json:"stripe_subscription_id"`
|
|
SyncStatus string `json:"sync_status"`
|
|
Livemode sql.NullBool `json:"livemode"`
|
|
}
|
|
|
|
// livemode is the refetched subscription's own flag
|
|
// (stripe-environment-stamp D4): the console never creates a subscription,
|
|
// so the stamp rides the read-back the reconcile already performs. The
|
|
// conflict branch COALESCEs it so a caller with no flag to offer passes
|
|
// NULL without erasing a known environment.
|
|
func (q *Queries) UpsertSubscriptionMapping(ctx context.Context, arg UpsertSubscriptionMappingParams) (SubscriptionMapping, error) {
|
|
row := q.db.QueryRowContext(ctx, upsertSubscriptionMapping,
|
|
arg.SubscriptionID,
|
|
arg.StripeSubscriptionID,
|
|
arg.SyncStatus,
|
|
arg.Livemode,
|
|
)
|
|
var i SubscriptionMapping
|
|
err := row.Scan(
|
|
&i.SubscriptionID,
|
|
&i.StripeSubscriptionID,
|
|
&i.SyncStatus,
|
|
&i.CreatedAt,
|
|
&i.UpdatedAt,
|
|
&i.Livemode,
|
|
)
|
|
return i, err
|
|
}
|