diff --git a/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt b/app/src/main/java/ru/myitschool/work/auth/data/AuthRepository.kt similarity index 75% rename from app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt rename to app/src/main/java/ru/myitschool/work/auth/data/AuthRepository.kt index c4d8585..a8877ba 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/AuthRepository.kt +++ b/app/src/main/java/ru/myitschool/work/auth/data/AuthRepository.kt @@ -1,13 +1,13 @@ -package ru.myitschool.work.data.repo +package ru.myitschool.work.auth.data -import ru.myitschool.work.data.source.NetworkDataSource -import ru.myitschool.work.domain.MyResult +import ru.myitschool.work.core.MyResult +import ru.myitschool.work.core.NetworkDataSource import ru.myitschool.work.util.DataStoreManager object AuthRepository { suspend fun checkAndSaveCode(code: String): MyResult { - /*return when (val result = NetworkDataSource.checkAuth(code)) { + return when (val result = NetworkDataSource.checkAuth(code)) { is MyResult.Success -> { if (result.data) { DataStoreManager.saveAuthCode(code) @@ -17,9 +17,9 @@ object AuthRepository { } } is MyResult.Error -> result - }*/ - DataStoreManager.saveAuthCode(code) - return MyResult.Success(Unit) + } + /*DataStoreManager.saveAuthCode(code) + return MyResult.Success(Unit)*/ } suspend fun logOut(): MyResult { return try { diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt b/app/src/main/java/ru/myitschool/work/auth/domain/CheckAndSaveAuthCodeUseCase.kt similarity index 52% rename from app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt rename to app/src/main/java/ru/myitschool/work/auth/domain/CheckAndSaveAuthCodeUseCase.kt index 5d77e19..7ee86b6 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/CheckAndSaveAuthCodeUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/auth/domain/CheckAndSaveAuthCodeUseCase.kt @@ -1,8 +1,7 @@ -package ru.myitschool.work.domain.auth +package ru.myitschool.work.auth.domain -import ru.myitschool.work.data.repo.AuthRepository -import ru.myitschool.work.domain.MyResult -import ru.myitschool.work.util.DataStoreManager +import ru.myitschool.work.auth.data.AuthRepository +import ru.myitschool.work.core.MyResult class CheckAndSaveAuthCodeUseCase( private val repository: AuthRepository, diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/LogOutUseCase.kt b/app/src/main/java/ru/myitschool/work/auth/domain/LogOutUseCase.kt similarity index 53% rename from app/src/main/java/ru/myitschool/work/domain/auth/LogOutUseCase.kt rename to app/src/main/java/ru/myitschool/work/auth/domain/LogOutUseCase.kt index 2a1efce..7b76323 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/LogOutUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/auth/domain/LogOutUseCase.kt @@ -1,7 +1,7 @@ -package ru.myitschool.work.domain.auth +package ru.myitschool.work.auth.domain -import ru.myitschool.work.data.repo.AuthRepository -import ru.myitschool.work.domain.MyResult +import ru.myitschool.work.auth.data.AuthRepository +import ru.myitschool.work.core.MyResult class LogOutUseCase(private val repository: AuthRepository) { suspend operator fun invoke(): MyResult{ diff --git a/app/src/main/java/ru/myitschool/work/ui/auth/AuthIntent.kt b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthIntent.kt similarity index 72% rename from app/src/main/java/ru/myitschool/work/ui/auth/AuthIntent.kt rename to app/src/main/java/ru/myitschool/work/auth/presentation/AuthIntent.kt index f05a1e9..6ab9ff5 100644 --- a/app/src/main/java/ru/myitschool/work/ui/auth/AuthIntent.kt +++ b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthIntent.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.auth +package ru.myitschool.work.auth.presentation sealed interface AuthIntent { data object Send: AuthIntent diff --git a/app/src/main/java/ru/myitschool/work/ui/auth/AuthScreen.kt b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthScreen.kt similarity index 97% rename from app/src/main/java/ru/myitschool/work/ui/auth/AuthScreen.kt rename to app/src/main/java/ru/myitschool/work/auth/presentation/AuthScreen.kt index 3089de5..3a1c942 100644 --- a/app/src/main/java/ru/myitschool/work/ui/auth/AuthScreen.kt +++ b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthScreen.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.auth +package ru.myitschool.work.auth.presentation import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -11,7 +11,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable diff --git a/app/src/main/java/ru/myitschool/work/ui/auth/AuthState.kt b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthState.kt similarity index 81% rename from app/src/main/java/ru/myitschool/work/ui/auth/AuthState.kt rename to app/src/main/java/ru/myitschool/work/auth/presentation/AuthState.kt index d7d8052..80291be 100644 --- a/app/src/main/java/ru/myitschool/work/ui/auth/AuthState.kt +++ b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthState.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.auth +package ru.myitschool.work.auth.presentation data class AuthState( val code: String = "", diff --git a/app/src/main/java/ru/myitschool/work/ui/auth/AuthViewModel.kt b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthViewModel.kt similarity index 90% rename from app/src/main/java/ru/myitschool/work/ui/auth/AuthViewModel.kt rename to app/src/main/java/ru/myitschool/work/auth/presentation/AuthViewModel.kt index a385b3a..6fb8ae2 100644 --- a/app/src/main/java/ru/myitschool/work/ui/auth/AuthViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/auth/presentation/AuthViewModel.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.auth +package ru.myitschool.work.auth.presentation import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -7,9 +7,9 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import ru.myitschool.work.data.repo.AuthRepository -import ru.myitschool.work.domain.MyResult -import ru.myitschool.work.domain.auth.CheckAndSaveAuthCodeUseCase +import ru.myitschool.work.auth.data.AuthRepository +import ru.myitschool.work.core.MyResult +import ru.myitschool.work.auth.domain.CheckAndSaveAuthCodeUseCase class AuthViewModel : ViewModel() { private val checkAndSaveAuthCodeUseCase by lazy { CheckAndSaveAuthCodeUseCase(AuthRepository) } diff --git a/app/src/main/java/ru/myitschool/work/data/dto/AvailableBookingResponse.kt b/app/src/main/java/ru/myitschool/work/booking/data/AvailableBookingResponse.kt similarity index 85% rename from app/src/main/java/ru/myitschool/work/data/dto/AvailableBookingResponse.kt rename to app/src/main/java/ru/myitschool/work/booking/data/AvailableBookingResponse.kt index e67dc6b..f9b7b78 100644 --- a/app/src/main/java/ru/myitschool/work/data/dto/AvailableBookingResponse.kt +++ b/app/src/main/java/ru/myitschool/work/booking/data/AvailableBookingResponse.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.data.dto +package ru.myitschool.work.booking.data import kotlinx.serialization.Serializable diff --git a/app/src/main/java/ru/myitschool/work/data/dto/BookRequest.kt b/app/src/main/java/ru/myitschool/work/booking/data/BookRequest.kt similarity index 75% rename from app/src/main/java/ru/myitschool/work/data/dto/BookRequest.kt rename to app/src/main/java/ru/myitschool/work/booking/data/BookRequest.kt index 1b93d30..60b3451 100644 --- a/app/src/main/java/ru/myitschool/work/data/dto/BookRequest.kt +++ b/app/src/main/java/ru/myitschool/work/booking/data/BookRequest.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.data.dto +package ru.myitschool.work.booking.data import kotlinx.serialization.Serializable diff --git a/app/src/main/java/ru/myitschool/work/data/repo/BookingRepository.kt b/app/src/main/java/ru/myitschool/work/booking/data/BookingRepository.kt similarity index 78% rename from app/src/main/java/ru/myitschool/work/data/repo/BookingRepository.kt rename to app/src/main/java/ru/myitschool/work/booking/data/BookingRepository.kt index bad262c..8734ff3 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/BookingRepository.kt +++ b/app/src/main/java/ru/myitschool/work/booking/data/BookingRepository.kt @@ -1,8 +1,8 @@ -package ru.myitschool.work.data.repo +package ru.myitschool.work.booking.data -import ru.myitschool.work.data.source.NetworkDataSource -import ru.myitschool.work.domain.MyResult -import ru.myitschool.work.domain.booking.BookingData +import ru.myitschool.work.booking.domain.BookingData +import ru.myitschool.work.core.MyResult +import ru.myitschool.work.core.NetworkDataSource object BookingRepository { suspend fun getAvailableForBooking(code: String): MyResult { diff --git a/app/src/main/java/ru/myitschool/work/domain/booking/BookingData.kt b/app/src/main/java/ru/myitschool/work/booking/domain/BookingData.kt similarity index 83% rename from app/src/main/java/ru/myitschool/work/domain/booking/BookingData.kt rename to app/src/main/java/ru/myitschool/work/booking/domain/BookingData.kt index b51b476..7e88028 100644 --- a/app/src/main/java/ru/myitschool/work/domain/booking/BookingData.kt +++ b/app/src/main/java/ru/myitschool/work/booking/domain/BookingData.kt @@ -1,6 +1,6 @@ -package ru.myitschool.work.domain.booking +package ru.myitschool.work.booking.domain -import ru.myitschool.work.data.dto.AvailablePlace +import ru.myitschool.work.booking.data.AvailablePlace data class BookingData( val dateToPlaces: Map> diff --git a/app/src/main/java/ru/myitschool/work/domain/booking/CreateBookingUseCase.kt b/app/src/main/java/ru/myitschool/work/booking/domain/CreateBookingUseCase.kt similarity index 63% rename from app/src/main/java/ru/myitschool/work/domain/booking/CreateBookingUseCase.kt rename to app/src/main/java/ru/myitschool/work/booking/domain/CreateBookingUseCase.kt index b7cd17f..39b904d 100644 --- a/app/src/main/java/ru/myitschool/work/domain/booking/CreateBookingUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/booking/domain/CreateBookingUseCase.kt @@ -1,7 +1,7 @@ -package ru.myitschool.work.domain.booking +package ru.myitschool.work.booking.domain -import ru.myitschool.work.data.repo.BookingRepository -import ru.myitschool.work.domain.MyResult +import ru.myitschool.work.booking.data.BookingRepository +import ru.myitschool.work.core.MyResult class CreateBookingUseCase( private val repository: BookingRepository diff --git a/app/src/main/java/ru/myitschool/work/domain/booking/GetAvailableUseCase.kt b/app/src/main/java/ru/myitschool/work/booking/domain/GetAvailableUseCase.kt similarity index 60% rename from app/src/main/java/ru/myitschool/work/domain/booking/GetAvailableUseCase.kt rename to app/src/main/java/ru/myitschool/work/booking/domain/GetAvailableUseCase.kt index 7fe6e61..8d8a723 100644 --- a/app/src/main/java/ru/myitschool/work/domain/booking/GetAvailableUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/booking/domain/GetAvailableUseCase.kt @@ -1,7 +1,7 @@ -package ru.myitschool.work.domain.booking +package ru.myitschool.work.booking.domain -import ru.myitschool.work.data.repo.BookingRepository -import ru.myitschool.work.domain.MyResult +import ru.myitschool.work.booking.data.BookingRepository +import ru.myitschool.work.core.MyResult class GetAvailableUseCase( private val repository: BookingRepository diff --git a/app/src/main/java/ru/myitschool/work/ui/booking/BookingScreen.kt b/app/src/main/java/ru/myitschool/work/booking/presentation/BookingScreen.kt similarity index 91% rename from app/src/main/java/ru/myitschool/work/ui/booking/BookingScreen.kt rename to app/src/main/java/ru/myitschool/work/booking/presentation/BookingScreen.kt index 1d50b6a..4be8733 100644 --- a/app/src/main/java/ru/myitschool/work/ui/booking/BookingScreen.kt +++ b/app/src/main/java/ru/myitschool/work/booking/presentation/BookingScreen.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.booking +package ru.myitschool.work.booking.presentation import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.padding diff --git a/app/src/main/java/ru/myitschool/work/ui/booking/BookingViewModel.kt b/app/src/main/java/ru/myitschool/work/booking/presentation/BookingViewModel.kt similarity index 61% rename from app/src/main/java/ru/myitschool/work/ui/booking/BookingViewModel.kt rename to app/src/main/java/ru/myitschool/work/booking/presentation/BookingViewModel.kt index 368e9df..4cd9fdb 100644 --- a/app/src/main/java/ru/myitschool/work/ui/booking/BookingViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/booking/presentation/BookingViewModel.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.booking +package ru.myitschool.work.booking.presentation import androidx.lifecycle.ViewModel diff --git a/app/src/main/java/ru/myitschool/work/domain/MyResult.kt b/app/src/main/java/ru/myitschool/work/core/MyResult.kt similarity index 80% rename from app/src/main/java/ru/myitschool/work/domain/MyResult.kt rename to app/src/main/java/ru/myitschool/work/core/MyResult.kt index 43ce82f..2150eff 100644 --- a/app/src/main/java/ru/myitschool/work/domain/MyResult.kt +++ b/app/src/main/java/ru/myitschool/work/core/MyResult.kt @@ -1,6 +1,6 @@ -package ru.myitschool.work.domain +package ru.myitschool.work.core sealed class MyResult { data class Success(val data: T): MyResult() data class Error(val error: String): MyResult() -} +} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/core/NetworkDataSource.kt b/app/src/main/java/ru/myitschool/work/core/NetworkDataSource.kt new file mode 100644 index 0000000..c550ff7 --- /dev/null +++ b/app/src/main/java/ru/myitschool/work/core/NetworkDataSource.kt @@ -0,0 +1,109 @@ +package ru.myitschool.work.core + +import io.ktor.client.HttpClient +import io.ktor.client.call.body +import io.ktor.client.engine.cio.CIO +import io.ktor.client.plugins.contentnegotiation.ContentNegotiation +import io.ktor.client.request.get +import io.ktor.client.request.post +import io.ktor.client.request.setBody +import io.ktor.http.ContentType +import io.ktor.http.HttpStatusCode +import io.ktor.http.contentType +import io.ktor.serialization.kotlinx.json.json +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import kotlinx.serialization.json.Json +import ru.myitschool.work.booking.data.AvailableBookingResponse +import ru.myitschool.work.booking.data.BookRequest +import ru.myitschool.work.user.data.UserInfoResponse + +object NetworkDataSource { + private val client by lazy { + HttpClient(CIO) { + install(ContentNegotiation) { + json( + Json { + isLenient = true + ignoreUnknownKeys = true + explicitNulls = true + encodeDefaults = true + } + ) + } + } + } + + suspend fun checkAuth(code: String): MyResult = withContext(Dispatchers.IO) { + try { + val response = client.get(getUrl(code, Constants.AUTH_URL)) + when (response.status) { + HttpStatusCode.OK -> MyResult.Success(true) + else -> { + MyResult.Error("Неверный код или ошибка сервера") + } + } + } catch (e: Exception) { + MyResult.Error("Сетевая ошибка") + } + } + + suspend fun getUserInfo(code: String): MyResult = + withContext(Dispatchers.IO) { + try { + val response = client.get(getUrl(code, Constants.INFO_URL)) + when (response.status) { + HttpStatusCode.OK -> { + val userInfo: UserInfoResponse = response.body() + MyResult.Success(userInfo) + } + + else -> { + MyResult.Error("Ошибка получения данных пользователя") + } + } + } catch (e: Exception) { + MyResult.Error("Сетевая ошибка") + } + } + + suspend fun getAvailableForBooking(code: String): MyResult = + withContext(Dispatchers.IO) { + try { + val response = client.get(getUrl(code, Constants.BOOKING_URL)) + when (response.status) { + HttpStatusCode.OK -> { + MyResult.Success(response.body()) + } + + else -> { + MyResult.Error("Ошибка получения доступных мест") + } + } + } catch (e: Exception) { + MyResult.Error("Сетевая ошибка") + } + } + + suspend fun createBooking(code: String, date: String, placeId: Int): MyResult = + withContext(Dispatchers.IO) { + try { + val response = client.post(getUrl(code, Constants.BOOK_URL)) { + contentType(ContentType.Application.Json) + setBody(BookRequest(date = date, placeID = placeId)) + } + when (response.status) { + HttpStatusCode.OK -> { + MyResult.Success(Unit) + } + + else -> { + MyResult.Error("Ошибка бронирования") + } + } + } catch (e: Exception) { + MyResult.Error("Сетевая ошибка") + } + } + private fun getUrl(code: String, targetUrl: String) = "${Constants.HOST}/api/$code$targetUrl" +} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt b/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt deleted file mode 100644 index 82075a3..0000000 --- a/app/src/main/java/ru/myitschool/work/data/source/NetworkDataSource.kt +++ /dev/null @@ -1,105 +0,0 @@ -package ru.myitschool.work.data.source - -import io.ktor.client.HttpClient -import io.ktor.client.call.body -import io.ktor.client.engine.cio.CIO -import io.ktor.client.plugins.contentnegotiation.ContentNegotiation -import io.ktor.client.request.get -import io.ktor.client.request.post -import io.ktor.client.request.setBody -import io.ktor.http.ContentType -import io.ktor.http.HttpStatusCode -import io.ktor.http.contentType -import io.ktor.serialization.kotlinx.json.json -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext -import kotlinx.serialization.json.Json -import ru.myitschool.work.core.Constants -import ru.myitschool.work.data.dto.AvailableBookingResponse -import ru.myitschool.work.data.dto.BookRequest -import ru.myitschool.work.data.dto.UserInfoResponse -import ru.myitschool.work.domain.MyResult - -object NetworkDataSource { - private val client by lazy { - HttpClient(CIO) { - install(ContentNegotiation) { - json( - Json { - isLenient = true - ignoreUnknownKeys = true - explicitNulls = true - encodeDefaults = true - } - ) - } - } - } - - suspend fun checkAuth(code: String): MyResult = withContext(Dispatchers.IO) { - try { - val response = client.get(getUrl(code, Constants.AUTH_URL)) - when (response.status) { - HttpStatusCode.OK -> MyResult.Success(true) - else -> { - MyResult.Error("Неверный код или ошибка сервера") - } - } - } catch (e: Exception) { - MyResult.Error("Сетевая ошибка") - } - } - - suspend fun getUserInfo(code: String): MyResult = withContext(Dispatchers.IO){ - try { - val response = client.get(getUrl(code, Constants.INFO_URL)) - when (response.status) { - HttpStatusCode.OK -> { - val userInfo: UserInfoResponse = response.body() - MyResult.Success(userInfo) - } - else -> { - MyResult.Error("Ошибка получения данных пользователя") - } - } - } catch (e: Exception){ - MyResult.Error("Сетевая ошибка") - } - } - - suspend fun getAvailableForBooking(code: String): MyResult = withContext(Dispatchers.IO) { - try { - val response = client.get(getUrl(code, Constants.BOOKING_URL)) - when (response.status) { - HttpStatusCode.OK -> { - MyResult.Success(response.body()) - } - else -> { - MyResult.Error("Ошибка получения доступных мест") - } - } - } catch (e: Exception){ - MyResult.Error("Сетевая ошибка") - } - } - - suspend fun createBooking(code: String, date: String, placeId: Int): MyResult = withContext(Dispatchers.IO){ - try { - val response = client.post(getUrl(code, Constants.BOOK_URL)) { - contentType(ContentType.Application.Json) - setBody(BookRequest(date = date, placeID = placeId)) - } - when (response.status) { - HttpStatusCode.OK -> { - MyResult.Success(Unit) - } - else -> { - MyResult.Error("Ошибка бронирования") - } - } - } catch (e: Exception){ - MyResult.Error("Сетевая ошибка") - } - } - private fun getUrl(code: String, targetUrl: String) = "${Constants.HOST}/api/$code$targetUrl" -} \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/NavigationGraph.kt b/app/src/main/java/ru/myitschool/work/ui/NavigationGraph.kt index 91ebbab..8841ec5 100644 --- a/app/src/main/java/ru/myitschool/work/ui/NavigationGraph.kt +++ b/app/src/main/java/ru/myitschool/work/ui/NavigationGraph.kt @@ -2,23 +2,20 @@ package ru.myitschool.work.ui import androidx.compose.animation.EnterTransition import androidx.compose.animation.ExitTransition -import androidx.compose.foundation.layout.Box -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController -import ru.myitschool.work.ui.auth.AuthScreen -import ru.myitschool.work.ui.booking.BookingScreen -import ru.myitschool.work.ui.main.MainScreen +import ru.myitschool.work.auth.presentation.AuthScreen +import ru.myitschool.work.booking.presentation.BookingScreen +import ru.myitschool.work.user.presentation.MainScreen import ru.myitschool.work.util.DataStoreManager @Composable diff --git a/app/src/main/java/ru/myitschool/work/data/dto/UserInfoResponse.kt b/app/src/main/java/ru/myitschool/work/user/data/UserInfoResponse.kt similarity index 87% rename from app/src/main/java/ru/myitschool/work/data/dto/UserInfoResponse.kt rename to app/src/main/java/ru/myitschool/work/user/data/UserInfoResponse.kt index 0edc9d8..c49ff61 100644 --- a/app/src/main/java/ru/myitschool/work/data/dto/UserInfoResponse.kt +++ b/app/src/main/java/ru/myitschool/work/user/data/UserInfoResponse.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.data.dto +package ru.myitschool.work.user.data import kotlinx.serialization.Serializable diff --git a/app/src/main/java/ru/myitschool/work/data/repo/UserRepository.kt b/app/src/main/java/ru/myitschool/work/user/data/UserRepository.kt similarity index 79% rename from app/src/main/java/ru/myitschool/work/data/repo/UserRepository.kt rename to app/src/main/java/ru/myitschool/work/user/data/UserRepository.kt index 017ff4e..e1a013e 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/UserRepository.kt +++ b/app/src/main/java/ru/myitschool/work/user/data/UserRepository.kt @@ -1,9 +1,8 @@ -package ru.myitschool.work.data.repo +package ru.myitschool.work.user.data -import ru.myitschool.work.data.dto.UserInfoResponse -import ru.myitschool.work.data.source.NetworkDataSource -import ru.myitschool.work.domain.MyResult -import ru.myitschool.work.domain.user.User +import ru.myitschool.work.core.MyResult +import ru.myitschool.work.core.NetworkDataSource +import ru.myitschool.work.user.domain.User object UserRepository { diff --git a/app/src/main/java/ru/myitschool/work/domain/user/GetUserUseCase.kt b/app/src/main/java/ru/myitschool/work/user/domain/GetUserUseCase.kt similarity index 58% rename from app/src/main/java/ru/myitschool/work/domain/user/GetUserUseCase.kt rename to app/src/main/java/ru/myitschool/work/user/domain/GetUserUseCase.kt index 71fbdab..4162516 100644 --- a/app/src/main/java/ru/myitschool/work/domain/user/GetUserUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/user/domain/GetUserUseCase.kt @@ -1,7 +1,7 @@ -package ru.myitschool.work.domain.user +package ru.myitschool.work.user.domain -import ru.myitschool.work.data.repo.UserRepository -import ru.myitschool.work.domain.MyResult +import ru.myitschool.work.user.data.UserRepository +import ru.myitschool.work.core.MyResult class GetUserUseCase( private val repository: UserRepository diff --git a/app/src/main/java/ru/myitschool/work/domain/user/User.kt b/app/src/main/java/ru/myitschool/work/user/domain/User.kt similarity index 74% rename from app/src/main/java/ru/myitschool/work/domain/user/User.kt rename to app/src/main/java/ru/myitschool/work/user/domain/User.kt index 8c524a6..754826f 100644 --- a/app/src/main/java/ru/myitschool/work/domain/user/User.kt +++ b/app/src/main/java/ru/myitschool/work/user/domain/User.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.domain.user +package ru.myitschool.work.user.domain data class User( val name: String, diff --git a/app/src/main/java/ru/myitschool/work/ui/main/BookingItem.kt b/app/src/main/java/ru/myitschool/work/user/presentation/BookingItem.kt similarity index 97% rename from app/src/main/java/ru/myitschool/work/ui/main/BookingItem.kt rename to app/src/main/java/ru/myitschool/work/user/presentation/BookingItem.kt index c4ebdfa..a9580d9 100644 --- a/app/src/main/java/ru/myitschool/work/ui/main/BookingItem.kt +++ b/app/src/main/java/ru/myitschool/work/user/presentation/BookingItem.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.main +package ru.myitschool.work.user.presentation import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer diff --git a/app/src/main/java/ru/myitschool/work/ui/main/MainIntent.kt b/app/src/main/java/ru/myitschool/work/user/presentation/MainIntent.kt similarity index 75% rename from app/src/main/java/ru/myitschool/work/ui/main/MainIntent.kt rename to app/src/main/java/ru/myitschool/work/user/presentation/MainIntent.kt index b0dc0af..979c2ad 100644 --- a/app/src/main/java/ru/myitschool/work/ui/main/MainIntent.kt +++ b/app/src/main/java/ru/myitschool/work/user/presentation/MainIntent.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.main +package ru.myitschool.work.user.presentation sealed interface MainIntent { data object LogOut: MainIntent diff --git a/app/src/main/java/ru/myitschool/work/ui/main/MainScreen.kt b/app/src/main/java/ru/myitschool/work/user/presentation/MainScreen.kt similarity index 98% rename from app/src/main/java/ru/myitschool/work/ui/main/MainScreen.kt rename to app/src/main/java/ru/myitschool/work/user/presentation/MainScreen.kt index 0b98e05..24e492a 100644 --- a/app/src/main/java/ru/myitschool/work/ui/main/MainScreen.kt +++ b/app/src/main/java/ru/myitschool/work/user/presentation/MainScreen.kt @@ -1,4 +1,4 @@ -package ru.myitschool.work.ui.main +package ru.myitschool.work.user.presentation import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -32,7 +32,6 @@ import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavController import coil3.compose.AsyncImage import ru.myitschool.work.core.TestIds -import ru.myitschool.work.data.dto.BookingItem import ru.myitschool.work.ui.Screen @Composable diff --git a/app/src/main/java/ru/myitschool/work/ui/main/MainState.kt b/app/src/main/java/ru/myitschool/work/user/presentation/MainState.kt similarity index 78% rename from app/src/main/java/ru/myitschool/work/ui/main/MainState.kt rename to app/src/main/java/ru/myitschool/work/user/presentation/MainState.kt index 6631059..69ba5d6 100644 --- a/app/src/main/java/ru/myitschool/work/ui/main/MainState.kt +++ b/app/src/main/java/ru/myitschool/work/user/presentation/MainState.kt @@ -1,6 +1,6 @@ -package ru.myitschool.work.ui.main +package ru.myitschool.work.user.presentation -import ru.myitschool.work.domain.user.User +import ru.myitschool.work.user.domain.User data class MainState( val user: User? = null, diff --git a/app/src/main/java/ru/myitschool/work/ui/main/MainViewModel.kt b/app/src/main/java/ru/myitschool/work/user/presentation/MainViewModel.kt similarity index 92% rename from app/src/main/java/ru/myitschool/work/ui/main/MainViewModel.kt rename to app/src/main/java/ru/myitschool/work/user/presentation/MainViewModel.kt index ca12b63..26f6802 100644 --- a/app/src/main/java/ru/myitschool/work/ui/main/MainViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/user/presentation/MainViewModel.kt @@ -1,6 +1,5 @@ -package ru.myitschool.work.ui.main +package ru.myitschool.work.user.presentation -import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.flow.MutableSharedFlow @@ -10,11 +9,11 @@ import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import ru.myitschool.work.data.repo.AuthRepository -import ru.myitschool.work.data.repo.UserRepository -import ru.myitschool.work.domain.MyResult -import ru.myitschool.work.domain.auth.LogOutUseCase -import ru.myitschool.work.domain.user.GetUserUseCase +import ru.myitschool.work.auth.data.AuthRepository +import ru.myitschool.work.user.data.UserRepository +import ru.myitschool.work.core.MyResult +import ru.myitschool.work.auth.domain.LogOutUseCase +import ru.myitschool.work.user.domain.GetUserUseCase import ru.myitschool.work.util.DataStoreManager import java.text.SimpleDateFormat import java.util.Locale