feat(auth): 手机号验证码登录(会话模型 + 登录页 + 导航接入)

This commit is contained in:
AndyChen1024
2026-09-11 13:05:10 +08:00
parent 762e3975ca
commit b14f883e3e
13 changed files with 309 additions and 34 deletions

View File

@@ -1,11 +1,30 @@
package com.mingyuan.android_client.core.domain.repository
import com.mingyuan.android_client.core.model.Session
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
sealed interface SmsCodeResult {
data object Success : SmsCodeResult
data class Failure(val message: String) : SmsCodeResult
}
sealed interface LoginResult {
data object Success : LoginResult
data class Failure(val message: String) : LoginResult
}
interface SessionRepository {
val isLoggedIn: Flow<Boolean>
/** The current session, or `null` when logged out. */
val session: Flow<Session?>
suspend fun login()
/** Derived convenience kept for the existing feature ViewModels (home/checkin/plan/profile). */
val isLoggedIn: Flow<Boolean>
get() = session.map { it != null }
suspend fun requestSmsCode(phone: String): SmsCodeResult
suspend fun login(phone: String, code: String): LoginResult
suspend fun logout()
}