// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.29.0 // source: virtual_games.sql package dbgen import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const CreateVirtualGameHistory = `-- name: CreateVirtualGameHistory :one INSERT INTO virtual_game_histories ( session_id, user_id, wallet_id, game_id, transaction_type, amount, currency, external_transaction_id, reference_transaction_id, status ) VALUES ( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10 ) RETURNING id, session_id, user_id, wallet_id, game_id, transaction_type, amount, currency, external_transaction_id, reference_transaction_id, status, created_at, updated_at ` type CreateVirtualGameHistoryParams struct { SessionID pgtype.Text `json:"session_id"` UserID int64 `json:"user_id"` WalletID pgtype.Int8 `json:"wallet_id"` GameID pgtype.Int8 `json:"game_id"` TransactionType string `json:"transaction_type"` Amount int64 `json:"amount"` Currency string `json:"currency"` ExternalTransactionID string `json:"external_transaction_id"` ReferenceTransactionID pgtype.Text `json:"reference_transaction_id"` Status string `json:"status"` } func (q *Queries) CreateVirtualGameHistory(ctx context.Context, arg CreateVirtualGameHistoryParams) (VirtualGameHistory, error) { row := q.db.QueryRow(ctx, CreateVirtualGameHistory, arg.SessionID, arg.UserID, arg.WalletID, arg.GameID, arg.TransactionType, arg.Amount, arg.Currency, arg.ExternalTransactionID, arg.ReferenceTransactionID, arg.Status, ) var i VirtualGameHistory err := row.Scan( &i.ID, &i.SessionID, &i.UserID, &i.WalletID, &i.GameID, &i.TransactionType, &i.Amount, &i.Currency, &i.ExternalTransactionID, &i.ReferenceTransactionID, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const CreateVirtualGameSession = `-- name: CreateVirtualGameSession :one INSERT INTO virtual_game_sessions ( user_id, game_id, session_token, currency, status, expires_at ) VALUES ( $1, $2, $3, $4, $5, $6 ) RETURNING id, user_id, game_id, session_token, currency, status, created_at, updated_at, expires_at ` type CreateVirtualGameSessionParams struct { UserID int64 `json:"user_id"` GameID string `json:"game_id"` SessionToken string `json:"session_token"` Currency string `json:"currency"` Status string `json:"status"` ExpiresAt pgtype.Timestamptz `json:"expires_at"` } func (q *Queries) CreateVirtualGameSession(ctx context.Context, arg CreateVirtualGameSessionParams) (VirtualGameSession, error) { row := q.db.QueryRow(ctx, CreateVirtualGameSession, arg.UserID, arg.GameID, arg.SessionToken, arg.Currency, arg.Status, arg.ExpiresAt, ) var i VirtualGameSession err := row.Scan( &i.ID, &i.UserID, &i.GameID, &i.SessionToken, &i.Currency, &i.Status, &i.CreatedAt, &i.UpdatedAt, &i.ExpiresAt, ) return i, err } const CreateVirtualGameTransaction = `-- name: CreateVirtualGameTransaction :one INSERT INTO virtual_game_transactions ( session_id, user_id, wallet_id, transaction_type, amount, currency, external_transaction_id, status ) VALUES ( $1, $2, $3, $4, $5, $6, $7, $8 ) RETURNING id, session_id, user_id, wallet_id, transaction_type, amount, currency, external_transaction_id, status, created_at, updated_at ` type CreateVirtualGameTransactionParams struct { SessionID int64 `json:"session_id"` UserID int64 `json:"user_id"` WalletID int64 `json:"wallet_id"` TransactionType string `json:"transaction_type"` Amount int64 `json:"amount"` Currency string `json:"currency"` ExternalTransactionID string `json:"external_transaction_id"` Status string `json:"status"` } func (q *Queries) CreateVirtualGameTransaction(ctx context.Context, arg CreateVirtualGameTransactionParams) (VirtualGameTransaction, error) { row := q.db.QueryRow(ctx, CreateVirtualGameTransaction, arg.SessionID, arg.UserID, arg.WalletID, arg.TransactionType, arg.Amount, arg.Currency, arg.ExternalTransactionID, arg.Status, ) var i VirtualGameTransaction err := row.Scan( &i.ID, &i.SessionID, &i.UserID, &i.WalletID, &i.TransactionType, &i.Amount, &i.Currency, &i.ExternalTransactionID, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const GetVirtualGameSessionByToken = `-- name: GetVirtualGameSessionByToken :one SELECT id, user_id, game_id, session_token, currency, status, created_at, updated_at, expires_at FROM virtual_game_sessions WHERE session_token = $1 ` func (q *Queries) GetVirtualGameSessionByToken(ctx context.Context, sessionToken string) (VirtualGameSession, error) { row := q.db.QueryRow(ctx, GetVirtualGameSessionByToken, sessionToken) var i VirtualGameSession err := row.Scan( &i.ID, &i.UserID, &i.GameID, &i.SessionToken, &i.Currency, &i.Status, &i.CreatedAt, &i.UpdatedAt, &i.ExpiresAt, ) return i, err } const GetVirtualGameSummaryInRange = `-- name: GetVirtualGameSummaryInRange :many SELECT vg.name AS game_name, COUNT(vgh.id) AS number_of_bets, COALESCE(SUM(vgh.amount), 0) AS total_transaction_sum FROM virtual_game_histories vgh JOIN virtual_games vg ON vgh.game_id = vg.id WHERE vgh.transaction_type = 'BET' AND vgh.created_at BETWEEN $1 AND $2 GROUP BY vg.name ` type GetVirtualGameSummaryInRangeParams struct { CreatedAt pgtype.Timestamp `json:"created_at"` CreatedAt_2 pgtype.Timestamp `json:"created_at_2"` } type GetVirtualGameSummaryInRangeRow struct { GameName string `json:"game_name"` NumberOfBets int64 `json:"number_of_bets"` TotalTransactionSum interface{} `json:"total_transaction_sum"` } func (q *Queries) GetVirtualGameSummaryInRange(ctx context.Context, arg GetVirtualGameSummaryInRangeParams) ([]GetVirtualGameSummaryInRangeRow, error) { rows, err := q.db.Query(ctx, GetVirtualGameSummaryInRange, arg.CreatedAt, arg.CreatedAt_2) if err != nil { return nil, err } defer rows.Close() var items []GetVirtualGameSummaryInRangeRow for rows.Next() { var i GetVirtualGameSummaryInRangeRow if err := rows.Scan(&i.GameName, &i.NumberOfBets, &i.TotalTransactionSum); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const GetVirtualGameTransactionByExternalID = `-- name: GetVirtualGameTransactionByExternalID :one SELECT id, session_id, user_id, wallet_id, transaction_type, amount, currency, external_transaction_id, status, created_at, updated_at FROM virtual_game_transactions WHERE external_transaction_id = $1 ` func (q *Queries) GetVirtualGameTransactionByExternalID(ctx context.Context, externalTransactionID string) (VirtualGameTransaction, error) { row := q.db.QueryRow(ctx, GetVirtualGameTransactionByExternalID, externalTransactionID) var i VirtualGameTransaction err := row.Scan( &i.ID, &i.SessionID, &i.UserID, &i.WalletID, &i.TransactionType, &i.Amount, &i.Currency, &i.ExternalTransactionID, &i.Status, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const UpdateVirtualGameSessionStatus = `-- name: UpdateVirtualGameSessionStatus :exec UPDATE virtual_game_sessions SET status = $2, updated_at = CURRENT_TIMESTAMP WHERE id = $1 ` type UpdateVirtualGameSessionStatusParams struct { ID int64 `json:"id"` Status string `json:"status"` } func (q *Queries) UpdateVirtualGameSessionStatus(ctx context.Context, arg UpdateVirtualGameSessionStatusParams) error { _, err := q.db.Exec(ctx, UpdateVirtualGameSessionStatus, arg.ID, arg.Status) return err } const UpdateVirtualGameTransactionStatus = `-- name: UpdateVirtualGameTransactionStatus :exec UPDATE virtual_game_transactions SET status = $2, updated_at = CURRENT_TIMESTAMP WHERE id = $1 ` type UpdateVirtualGameTransactionStatusParams struct { ID int64 `json:"id"` Status string `json:"status"` } func (q *Queries) UpdateVirtualGameTransactionStatus(ctx context.Context, arg UpdateVirtualGameTransactionStatusParams) error { _, err := q.db.Exec(ctx, UpdateVirtualGameTransactionStatus, arg.ID, arg.Status) return err }