diff --git a/api/gateway/tgsettle/internal/service/treasury/bot/markup.go b/api/gateway/tgsettle/internal/service/treasury/bot/markup.go index a51b3d6e..e62b202f 100644 --- a/api/gateway/tgsettle/internal/service/treasury/bot/markup.go +++ b/api/gateway/tgsettle/internal/service/treasury/bot/markup.go @@ -14,5 +14,5 @@ func markdownCode(value string) string { } func markdownCommand(command Command) string { - return markdownCode(command.Slash()) + return command.Slash() } diff --git a/api/gateway/tgsettle/internal/service/treasury/service.go b/api/gateway/tgsettle/internal/service/treasury/service.go index 88c0915a..51a61a39 100644 --- a/api/gateway/tgsettle/internal/service/treasury/service.go +++ b/api/gateway/tgsettle/internal/service/treasury/service.go @@ -441,7 +441,7 @@ func (s *Service) logRequest(record *storagemodel.TreasuryRequest, status string } func newRequestID() string { - return "TGSETTLE-" + strings.ToUpper(bson.NewObjectID().Hex()[:8]) + return "TGTREASURY-" + strings.ToUpper(bson.NewObjectID().Hex()[:8]) } func resolveAccountCode(account *ledger.Account, fallbackAccountID string) string { diff --git a/api/gateway/tgsettle/storage/mongo/store/treasury_requests.go b/api/gateway/tgsettle/storage/mongo/store/treasury_requests.go index 8a2fb112..28dfe29c 100644 --- a/api/gateway/tgsettle/storage/mongo/store/treasury_requests.go +++ b/api/gateway/tgsettle/storage/mongo/store/treasury_requests.go @@ -296,20 +296,48 @@ func (t *TreasuryRequests) Update(ctx context.Context, record *model.TreasuryReq Set(repository.Field("operationType"), record.OperationType). Set(repository.Field("telegramUserId"), record.TelegramUserID). Set(repository.Field("ledgerAccountId"), record.LedgerAccountID). - Set(repository.Field("ledgerAccountCode"), record.LedgerAccountCode). Set(repository.Field("organizationRef"), record.OrganizationRef). Set(repository.Field("chatId"), record.ChatID). Set(repository.Field("amount"), record.Amount). Set(repository.Field("currency"), record.Currency). Set(repository.Field(fieldTreasuryStatus), record.Status). - Set(repository.Field("confirmedAt"), record.ConfirmedAt). - Set(repository.Field("scheduledAt"), record.ScheduledAt). - Set(repository.Field("executedAt"), record.ExecutedAt). - Set(repository.Field("cancelledAt"), record.CancelledAt). Set(repository.Field(fieldTreasuryIdempotencyKey), record.IdempotencyKey). - Set(repository.Field("ledgerReference"), record.LedgerReference). - Set(repository.Field("errorMessage"), record.ErrorMessage). Set(repository.Field(fieldTreasuryActive), record.Active) + if record.LedgerAccountCode != "" { + patch = patch.Set(repository.Field("ledgerAccountCode"), record.LedgerAccountCode) + } else { + patch = patch.Unset(repository.Field("ledgerAccountCode")) + } + if !record.ConfirmedAt.IsZero() { + patch = patch.Set(repository.Field("confirmedAt"), record.ConfirmedAt) + } else { + patch = patch.Unset(repository.Field("confirmedAt")) + } + if !record.ScheduledAt.IsZero() { + patch = patch.Set(repository.Field("scheduledAt"), record.ScheduledAt) + } else { + patch = patch.Unset(repository.Field("scheduledAt")) + } + if !record.ExecutedAt.IsZero() { + patch = patch.Set(repository.Field("executedAt"), record.ExecutedAt) + } else { + patch = patch.Unset(repository.Field("executedAt")) + } + if !record.CancelledAt.IsZero() { + patch = patch.Set(repository.Field("cancelledAt"), record.CancelledAt) + } else { + patch = patch.Unset(repository.Field("cancelledAt")) + } + if record.LedgerReference != "" { + patch = patch.Set(repository.Field("ledgerReference"), record.LedgerReference) + } else { + patch = patch.Unset(repository.Field("ledgerReference")) + } + if record.ErrorMessage != "" { + patch = patch.Set(repository.Field("errorMessage"), record.ErrorMessage) + } else { + patch = patch.Unset(repository.Field("errorMessage")) + } if _, err := t.repo.PatchMany(ctx, repository.Filter(fieldTreasuryRequestID, record.RequestID), patch); err != nil { if !errors.Is(err, context.Canceled) && !errors.Is(err, context.DeadlineExceeded) { t.logger.Warn("Failed to update treasury request", zap.Error(err), zap.String("request_id", record.RequestID))