From c9080deeb31ba61a09fc2a092804d3cee23df8bb Mon Sep 17 00:00:00 2001 From: "Prad N (aider)" Date: Fri, 4 Apr 2025 00:53:40 -0400 Subject: [PATCH] feat: Add comprehensive chain queries for CRUD and utility searches --- x/portfolio/model/query.sql | 95 +++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/x/portfolio/model/query.sql b/x/portfolio/model/query.sql index 9f968c8..f87fcea 100644 --- a/x/portfolio/model/query.sql +++ b/x/portfolio/model/query.sql @@ -111,3 +111,98 @@ WHERE id = ?; SELECT * FROM assets WHERE coingecko_id = ? AND deleted_at IS NULL LIMIT 1; + +-- Chain table methods +-- name: CreateChain :one +INSERT INTO chains ( + id, + chain_id, + chain_name, + pretty_name, + network_type, + bech32_prefix, + daemon_name, + node_home, + slip44, + fees, + staking_denom, + logo_uri, + apis, + explorers, + is_enabled, + status, + codebase +) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +RETURNING *; + +-- name: GetChainByID :one +SELECT * FROM chains +WHERE id = ? AND deleted_at IS NULL +LIMIT 1; + +-- name: GetChainByChainID :one +SELECT * FROM chains +WHERE chain_id = ? AND deleted_at IS NULL +LIMIT 1; + +-- name: ListChains :many +SELECT * FROM chains +WHERE deleted_at IS NULL +ORDER BY network_type, chain_name; + +-- name: ListChainsByNetworkType :many +SELECT * FROM chains +WHERE network_type = ? AND deleted_at IS NULL +ORDER BY chain_name; + +-- name: ListEnabledChains :many +SELECT * FROM chains +WHERE is_enabled = true AND deleted_at IS NULL +ORDER BY network_type, chain_name; + +-- name: ListChainsByStatus :many +SELECT * FROM chains +WHERE status = ? AND deleted_at IS NULL +ORDER BY network_type, chain_name; + +-- name: SearchChainsByName :many +SELECT * FROM chains +WHERE (chain_name LIKE ? OR pretty_name LIKE ?) AND deleted_at IS NULL +ORDER BY network_type, chain_name +LIMIT 100; + +-- name: UpdateChain :one +UPDATE chains +SET + chain_name = ?, + pretty_name = ?, + network_type = ?, + bech32_prefix = ?, + daemon_name = ?, + node_home = ?, + slip44 = ?, + fees = ?, + staking_denom = ?, + logo_uri = ?, + apis = ?, + explorers = ?, + is_enabled = ?, + status = ?, + codebase = ?, + updated_at = CURRENT_TIMESTAMP +WHERE id = ? AND deleted_at IS NULL +RETURNING *; + +-- name: UpdateChainStatus :one +UPDATE chains +SET + is_enabled = ?, + status = ?, + updated_at = CURRENT_TIMESTAMP +WHERE id = ? AND deleted_at IS NULL +RETURNING *; + +-- name: SoftDeleteChain :exec +UPDATE chains +SET deleted_at = CURRENT_TIMESTAMP +WHERE id = ?;