data class UserSession(val accessToken: String, val refreshToken: String, val providerRefreshToken: String? = null, val providerToken: String? = null, val expiresIn: Long, val tokenType: String, val user: UserInfo? = null, val type: String = "", val expiresAt: Instant = Clock.System.now() + (expiresIn.seconds))(source)