From 570b1c0d2e0b317b9f9b9b5e2ce1eb5247c2d0a1 Mon Sep 17 00:00:00 2001 From: Pasha Date: Mon, 21 Jul 2025 18:33:23 +0300 Subject: [PATCH] added new mongo field crypto amount - float64 --- internal/models/alchemy/webhook.go | 2 +- internal/models/payment.go | 3 ++- internal/repository/payment.go | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/models/alchemy/webhook.go b/internal/models/alchemy/webhook.go index 4e6886a..f819fd9 100644 --- a/internal/models/alchemy/webhook.go +++ b/internal/models/alchemy/webhook.go @@ -29,7 +29,7 @@ type AlchemyAddressActivityWebhook struct { } `json:"rawContract"` ToAddress string `json:"toAddress"` //TypeTraceAddress interface{} `json:"typeTraceAddress"` - Value int64 `json:"value"` + Value float64 `json:"value"` } `json:"activity"` Network string `json:"network"` } `json:"event"` diff --git a/internal/models/payment.go b/internal/models/payment.go index 29766b0..46cdfda 100644 --- a/internal/models/payment.go +++ b/internal/models/payment.go @@ -30,7 +30,8 @@ type Payment struct { */ CallbackHostGRPC []string `json:"callbackHostGrpc" bson:"callbackHostGrpc"` - WalletAddress string // for crypto + WalletAddress string `json:"walletAddress" bson:"walletAddress"` // for crypto + CryptoAmount float64 `json:"cryptoAmount" bson:"cryptoAmount"` // for crypto } func (p *Payment) Sanitize() *Payment { diff --git a/internal/repository/payment.go b/internal/repository/payment.go index ceeaf2a..17b957b 100644 --- a/internal/repository/payment.go +++ b/internal/repository/payment.go @@ -33,6 +33,7 @@ var PaymentFields = struct { CallbackHostGRPC string WalletAddress string // for crypto + CryptoAmount string // for crypto }{ ID: "_id", UserID: "userId", @@ -52,6 +53,7 @@ var PaymentFields = struct { CallbackHostGRPC: "callbackHostGrpc", WalletAddress: "walletAddress", + CryptoAmount: "cryptoAmount", } type PaymentRepositoryDeps struct { @@ -161,18 +163,18 @@ func (r *PaymentRepository) SetPaymentStatus(ctx context.Context, paymentID stri return &payment, nil } -func (r *PaymentRepository) FindByWalletAddressAndAmount(ctx context.Context, walletAddress string, amount int64) (*models.Payment, errors.Error) { +func (r *PaymentRepository) FindByWalletAddressAndAmount(ctx context.Context, walletAddress string, cryptoAmount float64) (*models.Payment, errors.Error) { payment := models.Payment{} filter := bson.M{ PaymentFields.WalletAddress: walletAddress, - PaymentFields.Amount: amount, + PaymentFields.CryptoAmount: cryptoAmount, PaymentFields.Completed: false, //не завершённые } if err := r.collection.FindOne(ctx, filter).Decode(&payment); err != nil { r.logger.Error("failed to find payment by walletAddress and amount on of ", zap.Error(err), zap.String("walletAddress", walletAddress), - zap.Int64("amount", amount), + zap.Float64("amount", cryptoAmount), ) findErr := errors.NewWithError(