From 4bf1a365a971957814f22321e4f1300d624b146e Mon Sep 17 00:00:00 2001 From: codingbaraGo Date: Fri, 13 Feb 2026 18:45:23 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor(widget):=20=EA=B0=80=EA=B3=84?= =?UTF-8?q?=EB=B6=80=20=EC=83=9D=EC=84=B1=EC=8B=9C=20=EA=B8=B0=EB=B3=B8=20?= =?UTF-8?q?=EC=9C=84=EC=A0=AF=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../facade/AccountBookCommandFacade.java | 6 +++- .../port/AccountBookDefaultWidgetPort.java | 5 +++ .../AccountBookDefaultWidgetSetter.java | 31 +++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/port/AccountBookDefaultWidgetPort.java create mode 100644 backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/AccountBookDefaultWidgetSetter.java diff --git a/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/AccountBookCommandFacade.java b/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/AccountBookCommandFacade.java index e3176f8ce..5a3ab28b9 100644 --- a/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/AccountBookCommandFacade.java +++ b/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/AccountBookCommandFacade.java @@ -5,6 +5,7 @@ import com.genesis.unipocket.accountbook.command.application.command.DeleteAccountBookCommand; import com.genesis.unipocket.accountbook.command.application.command.UpdateAccountBookCommand; import com.genesis.unipocket.accountbook.command.application.result.AccountBookBudgetUpdateResult; +import com.genesis.unipocket.accountbook.command.facade.port.AccountBookDefaultWidgetPort; import com.genesis.unipocket.accountbook.command.presentation.request.AccountBookBudgetUpdateRequest; import com.genesis.unipocket.accountbook.command.presentation.request.AccountBookCreateRequest; import com.genesis.unipocket.accountbook.command.presentation.request.AccountBookUpdateRequest; @@ -21,6 +22,7 @@ public class AccountBookCommandFacade { private final AccountBookCommandService accountBookCommandService; private final UserQueryService userQueryService; + private final AccountBookDefaultWidgetPort accountBookDefaultWidgetPort; @Transactional public Long createAccountBook(UUID userId, AccountBookCreateRequest req) { @@ -29,7 +31,9 @@ public Long createAccountBook(UUID userId, AccountBookCreateRequest req) { CreateAccountBookCommand command = CreateAccountBookCommand.of(userId, userResponse.name(), req); - return accountBookCommandService.create(command); + Long accountBookId = accountBookCommandService.create(command); + accountBookDefaultWidgetPort.setDefaultWidget(accountBookId); + return accountBookId; } @Transactional diff --git a/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/port/AccountBookDefaultWidgetPort.java b/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/port/AccountBookDefaultWidgetPort.java new file mode 100644 index 000000000..c66abb567 --- /dev/null +++ b/backend/src/main/java/com/genesis/unipocket/accountbook/command/facade/port/AccountBookDefaultWidgetPort.java @@ -0,0 +1,5 @@ +package com.genesis.unipocket.accountbook.command.facade.port; + +public interface AccountBookDefaultWidgetPort { + public void setDefaultWidget(Long accountBookId); +} diff --git a/backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/AccountBookDefaultWidgetSetter.java b/backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/AccountBookDefaultWidgetSetter.java new file mode 100644 index 000000000..cc96f2a43 --- /dev/null +++ b/backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/AccountBookDefaultWidgetSetter.java @@ -0,0 +1,31 @@ +package com.genesis.unipocket.widget.command.facade.provide; + +import com.genesis.unipocket.accountbook.command.facade.port.AccountBookDefaultWidgetPort; +import com.genesis.unipocket.global.common.enums.WidgetType; +import com.genesis.unipocket.widget.command.application.WidgetCommandService; +import com.genesis.unipocket.widget.command.application.command.UpdateAccountBookWidgetsCommand; +import com.genesis.unipocket.widget.common.WidgetItem; +import com.genesis.unipocket.widget.common.enums.CurrencyType; +import com.genesis.unipocket.widget.common.enums.Period; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +@Component +@RequiredArgsConstructor +public class AccountBookDefaultWidgetSetter implements AccountBookDefaultWidgetPort { + + private final WidgetCommandService widgetCommandService; + + @Override + public void setDefaultWidget(Long accountBookId) { + List items = + List.of( + new WidgetItem(0, WidgetType.BUDGET, CurrencyType.BASE, Period.MONTHLY), + new WidgetItem(1, WidgetType.PERIOD, CurrencyType.BASE, Period.MONTHLY), + new WidgetItem(2, WidgetType.CATEGORY, CurrencyType.BASE, Period.MONTHLY)); + + widgetCommandService.updateAccountBookWidgets( + new UpdateAccountBookWidgetsCommand(accountBookId, items)); + } +} From 906991d3a59c30065df4d0122b1805fe8d3165ec Mon Sep 17 00:00:00 2001 From: codingbaraGo Date: Fri, 13 Feb 2026 18:55:34 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor(widget):=20=EC=97=AC=ED=96=89=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=EC=8B=9C=20=EA=B8=B0=EB=B3=B8=20=EC=9C=84?= =?UTF-8?q?=EC=A0=AF=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/facade/TravelCommandFacade.java | 7 ++++- .../facade/port/TravelDefaultWidgetPort.java | 6 ++++ .../provide/TravelDefaultWidgetSetter.java | 30 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/com/genesis/unipocket/travel/command/facade/port/TravelDefaultWidgetPort.java create mode 100644 backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/TravelDefaultWidgetSetter.java diff --git a/backend/src/main/java/com/genesis/unipocket/travel/command/facade/TravelCommandFacade.java b/backend/src/main/java/com/genesis/unipocket/travel/command/facade/TravelCommandFacade.java index ab482e829..76069a96a 100644 --- a/backend/src/main/java/com/genesis/unipocket/travel/command/facade/TravelCommandFacade.java +++ b/backend/src/main/java/com/genesis/unipocket/travel/command/facade/TravelCommandFacade.java @@ -6,6 +6,7 @@ import com.genesis.unipocket.travel.command.application.command.UpdateTravelCommand; import com.genesis.unipocket.travel.command.application.command.UpdateWidgetsCommand; import com.genesis.unipocket.travel.command.application.result.CreateTravelResult; +import com.genesis.unipocket.travel.command.facade.port.TravelDefaultWidgetPort; import com.genesis.unipocket.travel.command.presentation.request.TravelRequest; import com.genesis.unipocket.travel.command.presentation.request.TravelUpdateRequest; import com.genesis.unipocket.travel.command.presentation.request.WidgetRequest; @@ -21,13 +22,17 @@ public class TravelCommandFacade { private final TravelCommandService travelCommandService; private final UserAccountBookValidator userAccountBookValidator; + private final TravelDefaultWidgetPort travelDefaultWidgetPort; public Long createTravel(TravelRequest request, UUID userId) { userAccountBookValidator.validateUserAccountBook( userId.toString(), request.accountBookId()); CreateTravelCommand command = CreateTravelCommand.from(request); CreateTravelResult result = travelCommandService.createTravel(command); - return result.travelId(); + + Long travelId = result.travelId(); + travelDefaultWidgetPort.setDefaultWidget(travelId); + return travelId; } public void updateTravel(Long travelId, TravelRequest request, UUID userId) { diff --git a/backend/src/main/java/com/genesis/unipocket/travel/command/facade/port/TravelDefaultWidgetPort.java b/backend/src/main/java/com/genesis/unipocket/travel/command/facade/port/TravelDefaultWidgetPort.java new file mode 100644 index 000000000..de6a705bb --- /dev/null +++ b/backend/src/main/java/com/genesis/unipocket/travel/command/facade/port/TravelDefaultWidgetPort.java @@ -0,0 +1,6 @@ +package com.genesis.unipocket.travel.command.facade.port; + +public interface TravelDefaultWidgetPort { + + void setDefaultWidget(Long travelId); +} diff --git a/backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/TravelDefaultWidgetSetter.java b/backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/TravelDefaultWidgetSetter.java new file mode 100644 index 000000000..d926bd0cf --- /dev/null +++ b/backend/src/main/java/com/genesis/unipocket/widget/command/facade/provide/TravelDefaultWidgetSetter.java @@ -0,0 +1,30 @@ +package com.genesis.unipocket.widget.command.facade.provide; + +import com.genesis.unipocket.global.common.enums.WidgetType; +import com.genesis.unipocket.travel.command.facade.port.TravelDefaultWidgetPort; +import com.genesis.unipocket.widget.command.application.WidgetCommandService; +import com.genesis.unipocket.widget.command.application.command.UpdateTravelWidgetsCommand; +import com.genesis.unipocket.widget.common.WidgetItem; +import com.genesis.unipocket.widget.common.enums.CurrencyType; +import com.genesis.unipocket.widget.common.enums.Period; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +@Component +@RequiredArgsConstructor +public class TravelDefaultWidgetSetter implements TravelDefaultWidgetPort { + + private final WidgetCommandService widgetCommandService; + + @Override + public void setDefaultWidget(Long travelId) { + List items = + List.of( + new WidgetItem(0, WidgetType.BUDGET, CurrencyType.BASE, Period.MONTHLY), + new WidgetItem(1, WidgetType.PERIOD, CurrencyType.BASE, Period.MONTHLY), + new WidgetItem(2, WidgetType.CATEGORY, CurrencyType.BASE, Period.MONTHLY)); + + widgetCommandService.updateTravelWidgets(new UpdateTravelWidgetsCommand(travelId, items)); + } +}