mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
52 lines
1.3 KiB
SQL
52 lines
1.3 KiB
SQL
-- name: ListRecentOrderSummaries :many
|
|
SELECT
|
|
o.id,
|
|
o.order_number,
|
|
o.status,
|
|
o.total_amount_cents,
|
|
o.currency,
|
|
o.shipping_method,
|
|
o.shipping_price_cents,
|
|
o.created_at,
|
|
COALESCE(p.status, '') AS payment_status,
|
|
COALESCE(s.status, '') AS shipping_status
|
|
FROM eshop_orders AS o
|
|
LEFT JOIN LATERAL (
|
|
SELECT ep.status
|
|
FROM eshop_payments AS ep
|
|
WHERE ep.order_id = o.id
|
|
AND ep.deleted_at IS NULL
|
|
ORDER BY ep.created_at DESC
|
|
LIMIT 1
|
|
) AS p ON TRUE
|
|
LEFT JOIN LATERAL (
|
|
SELECT sl.status
|
|
FROM eshop_shipping_labels AS sl
|
|
WHERE sl.order_id = o.id
|
|
AND sl.deleted_at IS NULL
|
|
ORDER BY sl.created_at DESC
|
|
LIMIT 1
|
|
) AS s ON TRUE
|
|
WHERE o.deleted_at IS NULL
|
|
ORDER BY o.created_at DESC
|
|
LIMIT $1;
|
|
|
|
-- name: SummarizeOrderRevenue :one
|
|
SELECT
|
|
COUNT(*)::bigint AS order_count,
|
|
COALESCE(SUM(total_amount_cents), 0)::bigint AS gross_revenue_cents,
|
|
COALESCE(SUM(shipping_price_cents), 0)::bigint AS shipping_revenue_cents
|
|
FROM eshop_orders
|
|
WHERE deleted_at IS NULL
|
|
AND created_at >= $1
|
|
AND created_at < $2;
|
|
|
|
-- name: ListOrderStatusBreakdown :many
|
|
SELECT
|
|
status,
|
|
COUNT(*)::bigint AS order_count
|
|
FROM eshop_orders
|
|
WHERE deleted_at IS NULL
|
|
GROUP BY status
|
|
ORDER BY order_count DESC, status ASC;
|