package com.sb.web.auth.domain; import com.sb.web.auth.dto.SessionUser; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import java.time.LocalDateTime; /** * 세션 영속 백업(auth_session). Redis 유실 시 여기서 SessionUser 를 복원한다. */ @Data @Builder @NoArgsConstructor @AllArgsConstructor public class AuthSession { private String token; private Long memberId; private String loginId; private String name; private String role; private String plan; private String provider; private boolean rememberMe; private LocalDateTime expiresAt; private LocalDateTime createdAt; public static AuthSession of(String token, SessionUser u, LocalDateTime expiresAt) { return AuthSession.builder() .token(token) .memberId(u.getId()) .loginId(u.getLoginId()) .name(u.getName()) .role(u.getRole()) .plan(u.getPlan()) .provider(u.getProvider()) .rememberMe(u.isRememberMe()) .expiresAt(expiresAt) .build(); } public SessionUser toSessionUser() { return SessionUser.builder() .id(memberId) .loginId(loginId) .name(name) .role(role) .plan(plan) .provider(provider) .rememberMe(rememberMe) .build(); } }