From 35fe5703fd9ef72ab717b0719adf17a8818b0675 Mon Sep 17 00:00:00 2001 From: efrilm Date: Wed, 30 Sep 2026 17:05:42 +0700 Subject: [PATCH] fix(loyalty): keep tokens removed after merging staging Merging staging brought back, through its own re-apply of #32, the TOKENS campaign mapping, its test and the token_used sort fallback that c988a79 had removed, because those hunks did not conflict. This restores the five files to c988a79. Co-Authored-By: Claude Opus 5.5 --- internal/entities/campaign.go | 21 --------------------- internal/entities/campaign_test.go | 18 ------------------ internal/mappers/campaign_mapper.go | 8 ++++---- internal/processor/campaign_processor.go | 8 ++++---- internal/processor/game_play_processor.go | 4 ---- 5 files changed, 8 insertions(+), 51 deletions(-) delete mode 100644 internal/entities/campaign_test.go diff --git a/internal/entities/campaign.go b/internal/entities/campaign.go index 5eabd76..1e5aac0 100644 --- a/internal/entities/campaign.go +++ b/internal/entities/campaign.go @@ -16,27 +16,6 @@ const ( CampaignTypeMixed CampaignType = "MIXED" ) -// legacyCampaignTokens is what COINS was called before tokens became EnakCoin -// (docs/prd-point-coin.md ยง10). Requests may still send it; it is stored as COINS. -const legacyCampaignTokens = "TOKENS" - -// NormalizeCampaignType maps the legacy TOKENS to COINS and leaves anything else as is. -func NormalizeCampaignType(t string) CampaignType { - if t == legacyCampaignTokens { - return CampaignTypeCoins - } - return CampaignType(t) -} - -// NormalizeCampaignRewardType maps the legacy TOKENS to COINS and leaves anything -// else as is. -func NormalizeCampaignRewardType(t string) CampaignRewardType { - if t == legacyCampaignTokens { - return CampaignRewardTypeCoins - } - return CampaignRewardType(t) -} - type RuleType string const ( diff --git a/internal/entities/campaign_test.go b/internal/entities/campaign_test.go deleted file mode 100644 index 5dd1cd0..0000000 --- a/internal/entities/campaign_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package entities - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestNormalizeCampaignTypesMapsLegacyTokensToCoins(t *testing.T) { - assert.Equal(t, CampaignTypeCoins, NormalizeCampaignType("TOKENS")) - assert.Equal(t, CampaignTypeCoins, NormalizeCampaignType("COINS")) - assert.Equal(t, CampaignTypePoints, NormalizeCampaignType("POINTS")) - assert.Equal(t, CampaignType(""), NormalizeCampaignType(""), "an empty filter stays empty") - - assert.Equal(t, CampaignRewardTypeCoins, NormalizeCampaignRewardType("TOKENS")) - assert.Equal(t, CampaignRewardTypeReward, NormalizeCampaignRewardType("REWARD")) - assert.Equal(t, CampaignRewardType(""), NormalizeCampaignRewardType("")) -} diff --git a/internal/mappers/campaign_mapper.go b/internal/mappers/campaign_mapper.go index ffd2940..f662108 100644 --- a/internal/mappers/campaign_mapper.go +++ b/internal/mappers/campaign_mapper.go @@ -71,7 +71,7 @@ func ToCampaignEntity(request *contract.CreateCampaignRequest) *entities.Campaig return &entities.Campaign{ Name: request.Name, Description: request.Description, - Type: entities.NormalizeCampaignType(request.Type), + Type: entities.CampaignType(request.Type), StartDate: request.StartDate, EndDate: request.EndDate, IsActive: request.IsActive, @@ -91,7 +91,7 @@ func ToCampaignEntityFromUpdate(request *contract.UpdateCampaignRequest) *entiti ID: request.ID, Name: request.Name, Description: request.Description, - Type: entities.NormalizeCampaignType(request.Type), + Type: entities.CampaignType(request.Type), StartDate: request.StartDate, EndDate: request.EndDate, IsActive: request.IsActive, @@ -118,7 +118,7 @@ func ToCampaignRuleEntity(request *contract.CampaignRuleStruct, campaignID uuid. CampaignID: campaignID, RuleType: entities.RuleType(request.RuleType), ConditionValue: request.ConditionValue, - RewardType: entities.NormalizeCampaignRewardType(request.RewardType), + RewardType: entities.CampaignRewardType(request.RewardType), RewardValue: request.RewardValue, RewardSubtype: rewardSubtype, RewardRefID: request.RewardRefID, @@ -142,7 +142,7 @@ func ToCampaignRuleEntityFromUpdate(request *contract.CampaignRuleStruct, campai CampaignID: campaignID, RuleType: entities.RuleType(request.RuleType), ConditionValue: request.ConditionValue, - RewardType: entities.NormalizeCampaignRewardType(request.RewardType), + RewardType: entities.CampaignRewardType(request.RewardType), RewardValue: request.RewardValue, RewardSubtype: rewardSubtype, RewardRefID: request.RewardRefID, diff --git a/internal/processor/campaign_processor.go b/internal/processor/campaign_processor.go index 57f2c8f..2823a26 100644 --- a/internal/processor/campaign_processor.go +++ b/internal/processor/campaign_processor.go @@ -70,7 +70,7 @@ func (p *campaignProcessor) ListCampaigns(ctx context.Context, req *contract.Lis Page: req.Page, Limit: req.Limit, Search: req.Search, - Type: string(entities.NormalizeCampaignType(req.Type)), + Type: req.Type, IsActive: req.IsActive, ShowOnApp: req.ShowOnApp, StartDate: req.StartDate, @@ -178,7 +178,7 @@ func (p *campaignRuleProcessor) CreateCampaignRule(ctx context.Context, req *con CampaignID: req.CampaignID, RuleType: entities.RuleType(req.RuleType), ConditionValue: req.ConditionValue, - RewardType: entities.NormalizeCampaignRewardType(req.RewardType), + RewardType: entities.CampaignRewardType(req.RewardType), RewardValue: req.RewardValue, RewardSubtype: (*entities.RewardSubtype)(req.RewardSubtype), RewardRefID: req.RewardRefID, @@ -218,7 +218,7 @@ func (p *campaignRuleProcessor) ListCampaignRules(ctx context.Context, req *cont Limit: req.Limit, CampaignID: req.CampaignID, RuleType: req.RuleType, - RewardType: string(entities.NormalizeCampaignRewardType(req.RewardType)), + RewardType: req.RewardType, } // Get from repository @@ -247,7 +247,7 @@ func (p *campaignRuleProcessor) UpdateCampaignRule(ctx context.Context, req *con CampaignID: req.CampaignID, RuleType: entities.RuleType(req.RuleType), ConditionValue: req.ConditionValue, - RewardType: entities.NormalizeCampaignRewardType(req.RewardType), + RewardType: entities.CampaignRewardType(req.RewardType), RewardValue: req.RewardValue, RewardSubtype: (*entities.RewardSubtype)(req.RewardSubtype), RewardRefID: req.RewardRefID, diff --git a/internal/processor/game_play_processor.go b/internal/processor/game_play_processor.go index 15e3337..e6fef4f 100644 --- a/internal/processor/game_play_processor.go +++ b/internal/processor/game_play_processor.go @@ -99,10 +99,6 @@ func (p *GamePlayProcessor) ListGamePlays(ctx context.Context, query *models.Lis } offset := (query.Page - 1) * query.Limit - // The column was renamed; the old name still sorts the same way. - if query.SortBy == "token_used" { - query.SortBy = "coins_used" - } // Get game plays from repository gamePlays, total, err := p.gamePlayRepo.List(