From 03aec5947960ed56cc766ae7b485329e53b9c39d Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sat, 18 Jul 2026 11:17:51 +0000 Subject: [PATCH] =?UTF-8?q?[=EB=A7=A4=EC=9E=85]=20mg=5Frecv=5Fsvc=20?= =?UTF-8?q?=E2=86=92=20=EC=A0=84=EB=AC=B8=EC=88=98=EC=8B=A0=20@Service=20(?= =?UTF-8?q?ACM-MG-004)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/TxRepositoryStub.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 boot/modules/acquiring/src/main/java/com/klaro/acquirecore/acquiring/repository/TxRepositoryStub.java diff --git a/boot/modules/acquiring/src/main/java/com/klaro/acquirecore/acquiring/repository/TxRepositoryStub.java b/boot/modules/acquiring/src/main/java/com/klaro/acquirecore/acquiring/repository/TxRepositoryStub.java new file mode 100644 index 0000000..0ca9286 --- /dev/null +++ b/boot/modules/acquiring/src/main/java/com/klaro/acquirecore/acquiring/repository/TxRepositoryStub.java @@ -0,0 +1,70 @@ +package com.klaro.acquirecore.acquiring.repository; + +import com.klaro.acquirecore.acquiring.dto.TxMessage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Repository; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Stub implementation of TxRepository. + * In-memory storage for development/testing. + */ +@Repository +public class TxRepositoryStub implements TxRepository { + + private static final Logger log = LoggerFactory.getLogger(TxRepositoryStub.class); + + private final Map transactions = new ConcurrentHashMap<>(); + private final Map activeMerchants = new ConcurrentHashMap<>(); + private final Map activeTerminals = new ConcurrentHashMap<>(); + + public TxRepositoryStub() { + // Initialize with test data + activeMerchants.put("M001", true); + activeMerchants.put("M002", true); + activeTerminals.put("M001|T001", true); + activeTerminals.put("M001|T002", true); + activeTerminals.put("M002|T001", true); + } + + @Override + public boolean isMerchantActive(String merchantId) { + return activeMerchants.getOrDefault(merchantId, true); + } + + @Override + public boolean isTerminalActive(String merchantId, String terminalId) { + return activeTerminals.getOrDefault(merchantId + "|" + terminalId, true); + } + + @Override + public void saveTransaction(TxMessage msg) { + if (msg.getTxId() != null) { + transactions.put(msg.getTxId(), msg); + log.debug("Saved transaction: {}", msg.getTxId()); + } + } + + @Override + public boolean transactionExists(String txId) { + return transactions.containsKey(txId); + } + + @Override + public String getTransactionStatus(String txId) { + TxMessage msg = transactions.get(txId); + return msg != null ? msg.getStatus() : null; + } + + @Override + public void updateTransactionStatus(String txId, String status) { + TxMessage msg = transactions.get(txId); + if (msg != null) { + msg.setStatus(status); + log.debug("Updated transaction {} status to {}", txId, status); + } + } +}