diff --git a/internal/application/cardobservation/apply.go b/internal/application/cardobservation/apply.go index aef7d0f..f2cb630 100644 --- a/internal/application/cardobservation/apply.go +++ b/internal/application/cardobservation/apply.go @@ -85,9 +85,10 @@ func (s *Service) ApplyCardObservation(ctx context.Context, observation domain.R updates["last_sync_time"] = observation.Metadata.ObservedAt } if decision.StatusChanged { + verified := decision.AfterStatus == constants.RealNameStatusVerified updates["real_name_status"] = decision.AfterStatus - updates["activation_status"] = gorm.Expr(`CASE WHEN network_status = ? AND (card_category = ? OR ? = ?) THEN 1 ELSE 0 END`, constants.NetworkStatusOnline, constants.CardCategoryIndustry, decision.AfterStatus, constants.RealNameStatusVerified) - updates["activated_at"] = gorm.Expr(`CASE WHEN activated_at IS NULL AND (network_status = ? AND (card_category = ? OR ? = ?)) THEN ? ELSE activated_at END`, constants.NetworkStatusOnline, constants.CardCategoryIndustry, decision.AfterStatus, constants.RealNameStatusVerified, observation.Metadata.ObservedAt) + updates["activation_status"] = gorm.Expr(`CASE WHEN network_status = ? AND (card_category = ? OR ?) THEN 1 ELSE 0 END`, constants.NetworkStatusOnline, constants.CardCategoryIndustry, verified) + updates["activated_at"] = gorm.Expr(`CASE WHEN activated_at IS NULL AND (network_status = ? AND (card_category = ? OR ?)) THEN ? ELSE activated_at END`, constants.NetworkStatusOnline, constants.CardCategoryIndustry, verified, observation.Metadata.ObservedAt) } if decision.FirstVerified { updates["first_realname_at"] = observation.Metadata.ObservedAt