diff --git a/src/main/java/com/sb/web/account/domain/Wallet.java b/src/main/java/com/sb/web/account/domain/Wallet.java
index 06a6b56..1f64d98 100644
--- a/src/main/java/com/sb/web/account/domain/Wallet.java
+++ b/src/main/java/com/sb/web/account/domain/Wallet.java
@@ -35,6 +35,7 @@ public class Wallet implements Serializable {
private String loanMethod; // 상환방식: EQUAL_PAYMENT / EQUAL_PRINCIPAL / BULLET (LOAN 전용)
private Integer loanMonths; // 대출기간(개월) (LOAN 전용)
private LocalDate loanStart; // 대출시작일 (LOAN 전용)
+ private Long loanPayment; // 월 상환금(고정, 원리금균등) — 은행 조회액과 정확히 맞추기 위한 선택 입력 (LOAN 전용)
private Integer sortOrder; // 표시 순서 (타입 내 정렬)
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
diff --git a/src/main/java/com/sb/web/account/dto/WalletRequest.java b/src/main/java/com/sb/web/account/dto/WalletRequest.java
index ccb9af7..db50a7a 100644
--- a/src/main/java/com/sb/web/account/dto/WalletRequest.java
+++ b/src/main/java/com/sb/web/account/dto/WalletRequest.java
@@ -53,4 +53,5 @@ public class WalletRequest {
private Integer loanMonths; // 대출기간(개월)
private LocalDate loanStart; // 대출시작일
+ private Long loanPayment; // 월 상환금(고정, 원리금균등) — 선택
}
diff --git a/src/main/java/com/sb/web/account/dto/WalletResponse.java b/src/main/java/com/sb/web/account/dto/WalletResponse.java
index 2ec3b39..bd33d89 100644
--- a/src/main/java/com/sb/web/account/dto/WalletResponse.java
+++ b/src/main/java/com/sb/web/account/dto/WalletResponse.java
@@ -38,6 +38,7 @@ public class WalletResponse {
private String loanMethod; // EQUAL_PAYMENT / EQUAL_PRINCIPAL / BULLET
private Integer loanMonths; // 대출기간(개월)
private LocalDate loanStart; // 대출시작일
+ private Long loanPayment; // 월 상환금(고정, 원리금균등) — 선택 입력
public static WalletResponse from(Wallet w, long balance) {
return WalletResponse.builder()
@@ -56,6 +57,7 @@ public class WalletResponse {
.loanMethod(w.getLoanMethod())
.loanMonths(w.getLoanMonths())
.loanStart(w.getLoanStart())
+ .loanPayment(w.getLoanPayment())
.build();
}
}
diff --git a/src/main/java/com/sb/web/account/service/AccountService.java b/src/main/java/com/sb/web/account/service/AccountService.java
index 0b55296..9c58b93 100644
--- a/src/main/java/com/sb/web/account/service/AccountService.java
+++ b/src/main/java/com/sb/web/account/service/AccountService.java
@@ -659,6 +659,7 @@ public class AccountService {
.loanMethod(isLoan ? blankToNull(req.getLoanMethod()) : null)
.loanMonths(isLoan ? req.getLoanMonths() : null)
.loanStart(isLoan ? req.getLoanStart() : null)
+ .loanPayment(isLoan ? req.getLoanPayment() : null)
.build();
}
diff --git a/src/main/resources/db/account.sql b/src/main/resources/db/account.sql
index f93be69..589eb34 100644
--- a/src/main/resources/db/account.sql
+++ b/src/main/resources/db/account.sql
@@ -33,6 +33,7 @@ ALTER TABLE wallet ADD COLUMN IF NOT EXISTS loan_method VARCHAR(20) NULL COMME
ALTER TABLE wallet ADD COLUMN IF NOT EXISTS loan_months INT NULL COMMENT '대출기간(개월)';
ALTER TABLE wallet ADD COLUMN IF NOT EXISTS loan_start DATE NULL COMMENT '대출시작일';
ALTER TABLE wallet ADD COLUMN IF NOT EXISTS loan_amount BIGINT NULL COMMENT '대출 실행 금액(원금, 처음 빌린 금액)';
+ALTER TABLE wallet ADD COLUMN IF NOT EXISTS loan_payment BIGINT NULL COMMENT '월 상환금(고정, 원리금균등) — 은행 조회액과 맞추기 위한 선택 입력';
-- 계좌번호 암호화 저장(AES-GCM)으로 평문보다 길어 VARCHAR(255) 필요 — 운영 적용 완료(CREATE TABLE 정의에 반영).
-- 매 기동 MODIFY 는 라이브 테이블 락 위험이 있어 제거. 기존 환경 확장이 필요하면 1회 수동 적용:
-- ALTER TABLE wallet MODIFY account_number VARCHAR(255) NULL;
diff --git a/src/main/resources/mapper/WalletMapper.xml b/src/main/resources/mapper/WalletMapper.xml
index fae50b2..96db6cd 100644
--- a/src/main/resources/mapper/WalletMapper.xml
+++ b/src/main/resources/mapper/WalletMapper.xml
@@ -20,6 +20,7 @@
+
@@ -27,7 +28,7 @@
id, member_id, type, name, issuer, account_number, card_type,
opening_balance, opening_date, current_value,
- loan_amount, loan_rate, loan_method, loan_months, loan_start,
+ loan_amount, loan_rate, loan_method, loan_months, loan_start, loan_payment,
sort_order, created_at, updated_at