48 lines
1.1 KiB
SQL
48 lines
1.1 KiB
SQL
-- name: CreateTransfer :one
|
|
INSERT INTO wallet_transfer (
|
|
amount,
|
|
message,
|
|
type,
|
|
receiver_wallet_id,
|
|
sender_wallet_id,
|
|
cashier_id,
|
|
verified,
|
|
reference_number,
|
|
status,
|
|
payment_method
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
|
RETURNING *;
|
|
-- name: GetAllTransfers :many
|
|
SELECT *
|
|
FROM wallet_transfer_details;
|
|
-- name: GetTransfersByWallet :many
|
|
SELECT *
|
|
FROM wallet_transfer_details
|
|
WHERE receiver_wallet_id = $1
|
|
OR sender_wallet_id = $1;
|
|
-- name: GetTransferByID :one
|
|
SELECT *
|
|
FROM wallet_transfer_details
|
|
WHERE id = $1;
|
|
-- name: GetTransferByReference :one
|
|
SELECT *
|
|
FROM wallet_transfer_details
|
|
WHERE reference_number = $1;
|
|
-- name: UpdateTransferVerification :exec
|
|
UPDATE wallet_transfer
|
|
SET verified = $1,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = $2;
|
|
-- name: UpdateTransferStatus :exec
|
|
UPDATE wallet_transfer
|
|
SET status = $1,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
WHERE id = $2;
|
|
-- name: GetWalletTransactionsInRange :many
|
|
SELECT type,
|
|
COUNT(*) as count,
|
|
SUM(amount) as total_amount
|
|
FROM wallet_transfer
|
|
WHERE created_at BETWEEN $1 AND $2
|
|
GROUP BY type; |