feat(mypage): can_give_daily_login_bonus reflects IsDue(viewer)

Injects ILoginBonusService into MyPageController and sets
CanGiveDailyLoginBonus from IsDue(viewer) in the Index response.
Adds two integration tests: fresh viewer → true, post-load-index → false.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-13 16:50:17 -04:00
parent 7d83560fc9
commit 0d2da66795
2 changed files with 61 additions and 1 deletions

View File

@@ -30,16 +30,18 @@ public class MyPageController : SVSimController
private readonly IGameConfigService _config;
private readonly IArenaTwoPickRunRepository _arenaTwoPickRuns;
private readonly IHomeDialogSessionTracker _homeDialogTracker;
private readonly ILoginBonusService _loginBonus;
public MyPageController(IViewerRepository viewerRepository, IGlobalsRepository globalsRepository,
IGameConfigService config, IArenaTwoPickRunRepository arenaTwoPickRuns,
IHomeDialogSessionTracker homeDialogTracker)
IHomeDialogSessionTracker homeDialogTracker, ILoginBonusService loginBonus)
{
_viewerRepository = viewerRepository;
_globalsRepository = globalsRepository;
_config = config;
_arenaTwoPickRuns = arenaTwoPickRuns;
_homeDialogTracker = homeDialogTracker;
_loginBonus = loginBonus;
}
[HttpPost("index")]
@@ -83,6 +85,7 @@ public class MyPageController : SVSimController
return new MyPageIndexResponse
{
UserInfo = new UserInfo(deviceType, viewer),
CanGiveDailyLoginBonus = _loginBonus.IsDue(viewer),
UnreceivedMissionRewardCount = 0, // TODO(mypage-stub): viewer mission progress
ReceiveFriendApplyCount = 0, // TODO(mypage-stub): viewer friend-request inbox
UnreadPresentCount = 0, // TODO(mypage-stub): viewer presents/mail