From 5f2743fdb148f9364afdc36c6a68bdafa47ed57f Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Thu, 23 Oct 2025 19:10:22 -0400 Subject: [PATCH] s/preferred_coin_flair_mint/coin_flair_mint --- api/dbv1/get_users.sql.go | 10 ++--- api/dbv1/models.go | 2 +- api/dbv1/queries/get_users.sql | 8 ++-- api/swagger/swagger-v1-full.yaml | 2 +- api/v1_user_test.go | 42 +++++++++---------- .../0175_add_user_coin_badge_preference.sql | 4 +- sql/01_schema.sql | 6 +-- 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/api/dbv1/get_users.sql.go b/api/dbv1/get_users.sql.go index 6d4cc463..cf52626d 100644 --- a/api/dbv1/get_users.sql.go +++ b/api/dbv1/get_users.sql.go @@ -153,7 +153,7 @@ SELECT has_collectibles, allow_ai_attribution, - preferred_coin_flair_mint, + coin_flair_mint, ( SELECT JSON_BUILD_OBJECT( @@ -164,17 +164,17 @@ SELECT FROM artist_coins WHERE artist_coins.mint = -- User explicitly disabled flair - CASE WHEN (u.preferred_coin_flair_mint = '') THEN NULL + CASE WHEN (u.coin_flair_mint = '') THEN NULL ELSE COALESCE( -- Use preferred flair if valid artist coin and user has a balance - CASE WHEN (u.preferred_coin_flair_mint IS NOT NULL) THEN + CASE WHEN (u.coin_flair_mint IS NOT NULL) THEN ( SELECT sol_user_balances.mint FROM sol_user_balances JOIN artist_coins ON artist_coins.mint = sol_user_balances.mint WHERE sol_user_balances.user_id = u.user_id AND sol_user_balances.balance > 0 - AND sol_user_balances.mint = u.preferred_coin_flair_mint + AND sol_user_balances.mint = u.coin_flair_mint LIMIT 1 ) ELSE NULL @@ -279,7 +279,7 @@ type GetUsersRow struct { ProfilePictureLegacy interface{} `json:"profile_picture_legacy"` HasCollectibles bool `json:"has_collectibles"` AllowAiAttribution bool `json:"allow_ai_attribution"` - PreferredCoinFlairMint pgtype.Text `json:"preferred_coin_flair_mint"` + PreferredCoinFlairMint pgtype.Text `json:"coin_flair_mint"` ArtistCoinBadge json.RawMessage `json:"artist_coin_badge"` } diff --git a/api/dbv1/models.go b/api/dbv1/models.go index b6ddfa72..d6228668 100644 --- a/api/dbv1/models.go +++ b/api/dbv1/models.go @@ -2248,7 +2248,7 @@ type User struct { Donation pgtype.Text `json:"donation"` ProfileType *string `json:"profile_type"` // The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none. - PreferredCoinFlairMint pgtype.Text `json:"preferred_coin_flair_mint"` + PreferredCoinFlairMint pgtype.Text `json:"coin_flair_mint"` } type UserBalance struct { diff --git a/api/dbv1/queries/get_users.sql b/api/dbv1/queries/get_users.sql index 912f9c8b..e01f79ad 100644 --- a/api/dbv1/queries/get_users.sql +++ b/api/dbv1/queries/get_users.sql @@ -137,7 +137,7 @@ SELECT has_collectibles, allow_ai_attribution, - preferred_coin_flair_mint, + coin_flair_mint, ( SELECT JSON_BUILD_OBJECT( @@ -148,17 +148,17 @@ SELECT FROM artist_coins WHERE artist_coins.mint = -- User explicitly disabled flair - CASE WHEN (u.preferred_coin_flair_mint = '') THEN NULL + CASE WHEN (u.coin_flair_mint = '') THEN NULL ELSE COALESCE( -- Use preferred flair if valid artist coin and user has a balance - CASE WHEN (u.preferred_coin_flair_mint IS NOT NULL) THEN + CASE WHEN (u.coin_flair_mint IS NOT NULL) THEN ( SELECT sol_user_balances.mint FROM sol_user_balances JOIN artist_coins ON artist_coins.mint = sol_user_balances.mint WHERE sol_user_balances.user_id = u.user_id AND sol_user_balances.balance > 0 - AND sol_user_balances.mint = u.preferred_coin_flair_mint + AND sol_user_balances.mint = u.coin_flair_mint LIMIT 1 ) ELSE NULL diff --git a/api/swagger/swagger-v1-full.yaml b/api/swagger/swagger-v1-full.yaml index d1c572a3..a4bfb1b2 100644 --- a/api/swagger/swagger-v1-full.yaml +++ b/api/swagger/swagger-v1-full.yaml @@ -5495,7 +5495,7 @@ components: ticker: type: string description: The coin symbol/ticker - preferred_coin_flair_mint: + coin_flair_mint: type: string bio: type: string diff --git a/api/v1_user_test.go b/api/v1_user_test.go index d3c790bb..f8c648e3 100644 --- a/api/v1_user_test.go +++ b/api/v1_user_test.go @@ -62,24 +62,24 @@ func TestGetUserCoinBadges(t *testing.T) { "handle": "stereosteve", }, { - "user_id": 5, - "handle": "user5", - "preferred_coin_flair_mint": "test_mint_address_124", // Prefers STEVE + "user_id": 5, + "handle": "user5", + "coin_flair_mint": "test_mint_address_124", // Prefers STEVE }, { - "user_id": 6, - "handle": "user6", - "preferred_coin_flair_mint": "test_mint_address_123", // Prefers TESTCOIN but has zero balance + "user_id": 6, + "handle": "user6", + "coin_flair_mint": "test_mint_address_123", // Prefers TESTCOIN but has zero balance }, { - "user_id": 7, - "handle": "user7", - "preferred_coin_flair_mint": "", // Empty string - should show no badge + "user_id": 7, + "handle": "user7", + "coin_flair_mint": "", // Empty string - should show no badge }, { - "user_id": 8, - "handle": "user8", - "preferred_coin_flair_mint": "test_mint_address_124", // Prefers STEVE over their own coin + "user_id": 8, + "handle": "user8", + "coin_flair_mint": "test_mint_address_124", // Prefers STEVE over their own coin }, }, "artist_coins": { @@ -226,7 +226,7 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": nil, + "data.0.coin_flair_mint": nil, "data.0.artist_coin_badge.mint": "test_mint_address_123", "data.0.artist_coin_badge.ticker": "TESTCOIN", "data.0.artist_coin_badge.logo_uri": "https://example.com/test-logo.png", @@ -239,8 +239,8 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": nil, - "data.0.artist_coin_badge": nil, + "data.0.coin_flair_mint": nil, + "data.0.artist_coin_badge": nil, }) } @@ -250,7 +250,7 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": nil, + "data.0.coin_flair_mint": nil, "data.0.artist_coin_badge.mint": "test_mint_address_123", "data.0.artist_coin_badge.ticker": "TESTCOIN", "data.0.artist_coin_badge.logo_uri": "https://example.com/test-logo.png", @@ -263,7 +263,7 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": nil, + "data.0.coin_flair_mint": nil, "data.0.artist_coin_badge.mint": "test_mint_address_124", "data.0.artist_coin_badge.ticker": "STEVE", "data.0.artist_coin_badge.logo_uri": "https://example.com/steve-logo.png", @@ -276,7 +276,7 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": "test_mint_address_124", + "data.0.coin_flair_mint": "test_mint_address_124", "data.0.artist_coin_badge.mint": "test_mint_address_124", "data.0.artist_coin_badge.ticker": "STEVE", "data.0.artist_coin_badge.logo_uri": "https://example.com/steve-logo.png", @@ -289,7 +289,7 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": "test_mint_address_123", + "data.0.coin_flair_mint": "test_mint_address_123", "data.0.artist_coin_badge.mint": "test_mint_address_124", "data.0.artist_coin_badge.ticker": "STEVE", "data.0.artist_coin_badge.logo_uri": "https://example.com/steve-logo.png", @@ -302,8 +302,8 @@ func TestGetUserCoinBadges(t *testing.T) { assert.Equal(t, 200, status) jsonAssert(t, body, map[string]any{ - "data.0.preferred_coin_flair_mint": "", - "data.0.artist_coin_badge": nil, + "data.0.coin_flair_mint": "", + "data.0.artist_coin_badge": nil, }) } diff --git a/ddl/migrations/0175_add_user_coin_badge_preference.sql b/ddl/migrations/0175_add_user_coin_badge_preference.sql index ff88af5c..0c9d32bd 100644 --- a/ddl/migrations/0175_add_user_coin_badge_preference.sql +++ b/ddl/migrations/0175_add_user_coin_badge_preference.sql @@ -1,6 +1,6 @@ BEGIN; -ALTER TABLE users ADD COLUMN IF NOT EXISTS preferred_coin_flair_mint TEXT DEFAULT NULL; -COMMENT ON COLUMN users.preferred_coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.'; +ALTER TABLE users ADD COLUMN IF NOT EXISTS coin_flair_mint TEXT DEFAULT NULL; +COMMENT ON COLUMN users.coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.'; COMMIT; \ No newline at end of file diff --git a/sql/01_schema.sql b/sql/01_schema.sql index 3f8b6770..e443e997 100644 --- a/sql/01_schema.sql +++ b/sql/01_schema.sql @@ -8212,15 +8212,15 @@ CREATE TABLE public.users ( website character varying, donation character varying, profile_type public.profile_type_enum, - preferred_coin_flair_mint text + coin_flair_mint text ); -- --- Name: COLUMN users.preferred_coin_flair_mint; Type: COMMENT; Schema: public; Owner: - +-- Name: COLUMN users.coin_flair_mint; Type: COMMENT; Schema: public; Owner: - -- -COMMENT ON COLUMN public.users.preferred_coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.'; +COMMENT ON COLUMN public.users.coin_flair_mint IS 'The mint of the coin which the user has selected as their preferred flair. NULL for auto, empty string for none.'; --