From f3fb3871c4521d9f28122d0036a3b6b07b081751 Mon Sep 17 00:00:00 2001 From: Victor Kabata Date: Mon, 19 Aug 2024 21:48:48 +0300 Subject: [PATCH 1/8] Optimised workflow files --- .github/workflows/build.yml | 33 ++++++------------------ .github/workflows/deployAndroidDebug.yml | 29 ++++----------------- 2 files changed, 13 insertions(+), 49 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b3e8aacf..1efae1eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build +name: Build & Test on: workflow_dispatch: @@ -15,33 +15,16 @@ jobs: uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'adopt' java-version: '17' - - name: Make gradle executable - run: chmod +x ./gradlew + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 - name: Build with gradle - run: ./gradlew build --stacktrace - -# unit-tests: -# name: ๐Ÿงช Run Tests -# runs-on: ubuntu-latest -# steps: -# -# - name: Checkout code -# uses: actions/checkout@v2 -# -# - name: Make gradle executable -# run: chmod +x ./gradlew -# -# - name: Execute unit tests -# run: ./gradlew test --stacktrace -# -# - name: Generate test report -# uses: actions/upload-artifact@v2 -# with: -# name: unit_tests_report.html -# path: androidApp/build/reports/tests/testDebugUnitTest/ \ No newline at end of file + run: ./gradlew :shared:clean :shared:build --stacktrace + + - name: Execute unit tests + run: ./gradlew :shared:allTests --stacktrace \ No newline at end of file diff --git a/.github/workflows/deployAndroidDebug.yml b/.github/workflows/deployAndroidDebug.yml index 2477f488..03665d2b 100644 --- a/.github/workflows/deployAndroidDebug.yml +++ b/.github/workflows/deployAndroidDebug.yml @@ -1,4 +1,4 @@ -name: Deploy Android Debug +name: Build & Deploy Android Debug on: workflow_dispatch: inputs: @@ -23,35 +23,16 @@ jobs: uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: adopt java-version: "17" - - name: Make gradle executable - run: chmod +x ./gradlew + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 - name: Build with Gradle - run: ./gradlew build --stacktrace - - deploy: - name: ๐Ÿš€ Deploy to Firebase App Distribution - needs: - - build - runs-on: ubuntu-latest - steps: - - - name: Checkout Code - uses: actions/checkout@v4 - - - name: Set up JDK - uses: actions/setup-java@v3 - with: - distribution: adopt - java-version: "17" - - - name: Make gradle executable - run: chmod +x ./gradlew + run: ./gradlew :shared:clean :shared:build --stacktrace - name: Get local.properties from secrets run: echo "${{secrets.LOCAL_PROPERTIES }}" > $GITHUB_WORKSPACE/local.properties From b67a946122d9f3ee46445bdf9a610e696d6c0815 Mon Sep 17 00:00:00 2001 From: Victor Kabata Date: Mon, 19 Aug 2024 21:50:02 +0300 Subject: [PATCH 2/8] Linting --- .github/workflows/build.yml | 2 +- .github/workflows/deployAndroidDebug.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1efae1eb..89baac43 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ on: jobs: build: - name: ๐Ÿ”จ Build + name: ๐Ÿ”จ Build & Test runs-on: ubuntu-latest steps: diff --git a/.github/workflows/deployAndroidDebug.yml b/.github/workflows/deployAndroidDebug.yml index 03665d2b..698d0694 100644 --- a/.github/workflows/deployAndroidDebug.yml +++ b/.github/workflows/deployAndroidDebug.yml @@ -16,7 +16,7 @@ env: jobs: build: - name: ๐Ÿ”จ Build + name: ๐Ÿ”จ Build & Deploy runs-on: ubuntu-latest steps: - name: Checkout Code From 5b2a33cb9107e6f6152bcec8364e5daadd88db56 Mon Sep 17 00:00:00 2001 From: Victor Kabata Date: Mon, 19 Aug 2024 21:59:38 +0300 Subject: [PATCH 3/8] Linting --- .editorconfig | 12 +- appAndroid/build.gradle.kts | 24 +- .../com/vickbt/notflix/NotflixApplication.kt | 1 - .../notflix/ui/activity/MainActivity.kt | 1 - .../vickbt/notflix/ui/windows/MainWindow.kt | 11 +- gradle/libs.versions.toml | 2 +- shared/build.gradle.kts | 2 +- .../kotlin/com/vickbt/shared/di/Module.kt | 9 +- .../com/vickbt/shared/utils/ContextUtils.kt | 6 +- .../cache/sqldelight/daos/FavoriteMovieDao.kt | 12 +- .../datasources/FavoritesRepositoryImpl.kt | 1 - .../datasources/MovieDetailsRepositoryImpl.kt | 18 +- .../data/datasources/MoviesRepositoryImpl.kt | 54 +- .../datasources/SettingsRepositoryImpl.kt | 8 +- .../vickbt/shared/data/mappers/DtoToDomain.kt | 12 +- .../shared/data/mappers/EntityToDomain.kt | 2 +- .../shared/data/network/models/ActorDto.kt | 9 +- .../shared/data/network/models/ApiError.kt | 5 +- .../shared/data/network/models/CastDto.kt | 4 +- .../shared/data/network/models/DatesDto.kt | 3 +- .../data/network/models/ErrorResponseDto.kt | 4 +- .../shared/data/network/models/GenreDto.kt | 4 +- .../data/network/models/MovieDetailsDto.kt | 22 +- .../shared/data/network/models/MovieDto.kt | 17 +- .../data/network/models/MovieResultsDto.kt | 5 +- .../data/network/models/MovieVideoDto.kt | 4 +- .../data/network/models/SpokenLanguageDto.kt | 5 +- .../shared/data/network/models/VideoDto.kt | 12 +- .../shared/data/network/utils/SafeApiCall.kt | 4 +- .../com/vickbt/shared/di/CommonModule.kt | 96 +-- .../kotlin/com/vickbt/shared/di/Koin.kt | 12 +- .../com/vickbt/shared/domain/models/Actor.kt | 9 +- .../com/vickbt/shared/domain/models/Cast.kt | 4 +- .../com/vickbt/shared/domain/models/Dates.kt | 3 +- .../shared/domain/models/ErrorResponse.kt | 2 +- .../com/vickbt/shared/domain/models/Genre.kt | 4 +- .../com/vickbt/shared/domain/models/Movie.kt | 18 +- .../shared/domain/models/MovieDetails.kt | 20 +- .../shared/domain/models/MovieResults.kt | 6 +- .../vickbt/shared/domain/models/MovieVideo.kt | 3 +- .../shared/domain/models/PopularMovies.kt | 6 +- .../shared/domain/models/SpokenLanguage.kt | 5 +- .../shared/domain/models/TrendingMovies.kt | 5 +- .../shared/domain/models/UpcomingMovies.kt | 7 +- .../com/vickbt/shared/domain/models/Video.kt | 12 +- .../repositories/FavoritesRepository.kt | 1 - .../repositories/MovieDetailsRepository.kt | 3 +- .../domain/repositories/MoviesRepository.kt | 5 +- .../domain/repositories/SettingsRepository.kt | 6 +- .../vickbt/shared/domain/utils/Constants.kt | 1 - .../com/vickbt/shared/domain/utils/Enums.kt | 5 +- .../shared/ui/components/BottomNavBar.kt | 17 +- .../shared/ui/components/ExpandedText.kt | 35 +- .../shared/ui/components/ItemMovieCast.kt | 11 +- .../ui/components/MovieCardDescription.kt | 41 +- .../ui/components/MovieCardLandscape.kt | 67 ++- .../shared/ui/components/MovieCardPager.kt | 65 +- .../shared/ui/components/MovieCardPortrait.kt | 10 +- .../ui/components/MovieCardPortraitCompact.kt | 26 +- .../ui/components/MovieRatingSection.kt | 29 +- .../vickbt/shared/ui/components/NavRailBar.kt | 17 +- .../shared/ui/components/SectionSeparator.kt | 4 +- .../ui/components/appbars/DetailsAppBar.kt | 73 +-- .../shared/ui/components/appbars/TopAppBar.kt | 4 +- .../collapsingToolbar/AppBarContainer.kt | 239 ++++---- .../collapsingToolbar/CollapsingToolbar.kt | 565 +++++++++--------- .../CollapsingToolbarScaffold.kt | 249 ++++---- .../ExperimentalToolbarApi.kt | 7 +- .../collapsingToolbar/ScrollStrategy.kt | 384 ++++++------ .../preferences/DialogPreferenceSelection.kt | 12 +- .../preferences/ItemPreferenceOption.kt | 6 +- .../preferences/PreferencesGroup.kt | 20 +- .../components/preferences/TextPreference.kt | 49 +- .../ratingbar/FractionalRectangleShape.kt | 8 +- .../ui/components/ratingbar/PathExtensions.kt | 2 +- .../ui/components/ratingbar/RatingBar.kt | 135 +++-- .../ui/components/ratingbar/RatingBarUtils.kt | 1 - .../ui/components/ratingbar/RatingStar.kt | 71 +-- .../vickbt/shared/ui/navigation/Navigation.kt | 8 +- .../shared/ui/navigation/NavigationItem.kt | 6 +- .../ui/screens/details/DetailsScreen.kt | 27 +- .../ui/screens/details/DetailsViewModel.kt | 97 +-- .../ui/screens/favorites/FavoritesScreen.kt | 11 +- .../screens/favorites/FavoritesViewModel.kt | 19 +- .../shared/ui/screens/home/HomeScreen.kt | 122 ++-- .../shared/ui/screens/home/HomeViewModel.kt | 103 ++-- .../shared/ui/screens/main/MainScreen.kt | 19 +- .../shared/ui/screens/main/MainViewModel.kt | 16 +- .../shared/ui/screens/search/SearchScreen.kt | 26 +- .../ui/screens/settings/SettingsScreen.kt | 18 +- .../ui/screens/settings/SettingsViewModel.kt | 44 +- .../com/vickbt/shared/ui/theme/Shape.kt | 11 +- .../com/vickbt/shared/ui/theme/Theme.kt | 34 +- .../kotlin/com/vickbt/shared/ui/theme/Type.kt | 1 - .../vickbt/shared/utils/DatastoreFactory.kt | 2 +- .../com/vickbt/shared/utils/Extensions.kt | 17 +- .../com/vickbt/shared/utils/ResultState.kt | 2 + .../com/vickbt/shared/utils/UiStates.kt | 10 +- .../com/vickbt/shared/utils/WindowSize.kt | 3 +- .../kotlin/com/vickbt/shared/di/Module.kt | 9 +- .../kotlin/com/vickbt/shared/di/Module.kt | 9 +- .../shared/utils/DatastoreFactory.ios.kt | 15 +- .../vickbt/shared/utils/MainViewController.kt | 1 + 103 files changed, 1646 insertions(+), 1637 deletions(-) delete mode 100644 shared/src/commonMain/kotlin/com/vickbt/shared/ui/theme/Type.kt diff --git a/.editorconfig b/.editorconfig index 78d7e9ab..75cf3832 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,6 +1,6 @@ -[*.{kt,kts}] -disabled_rules = import-ordering, experimental:argument-list-wrapping, indent -insert_final_newline = true -# ij_kotlin_allow_trailing_comma = false -# ij_kotlin_allow_trailing_comma_on_call_site = false -# indent_size = unset \ No newline at end of file +root = true + +[*] +ktlint_standard_final-newline = disabled +ktlint_standard_no-consecutive-comments = disabled +ktlint_function_naming_ignore_when_annotated_with = Composable \ No newline at end of file diff --git a/appAndroid/build.gradle.kts b/appAndroid/build.gradle.kts index 5b8148fd..fbf33414 100644 --- a/appAndroid/build.gradle.kts +++ b/appAndroid/build.gradle.kts @@ -15,16 +15,18 @@ android { minSdk = 24 targetSdk = compileSdk - versionCode = if (System.getenv("VERSION_CODE").isNullOrEmpty()) { - 1 - } else { - System.getenv("VERSION_CODE").toInt() - } - versionName = if (System.getenv("VERSION_NAME").isNullOrEmpty()) { - "1.0.0" - } else { - System.getenv("VERSION_NAME")?.toString() - } + versionCode = + if (System.getenv("VERSION_CODE").isNullOrEmpty()) { + 1 + } else { + System.getenv("VERSION_CODE").toInt() + } + versionName = + if (System.getenv("VERSION_NAME").isNullOrEmpty()) { + "1.0.0" + } else { + System.getenv("VERSION_NAME")?.toString() + } testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } @@ -34,7 +36,7 @@ android { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" + "proguard-rules.pro", ) } diff --git a/appAndroid/src/main/java/com/vickbt/notflix/NotflixApplication.kt b/appAndroid/src/main/java/com/vickbt/notflix/NotflixApplication.kt index a7f2ec27..36fd44c4 100644 --- a/appAndroid/src/main/java/com/vickbt/notflix/NotflixApplication.kt +++ b/appAndroid/src/main/java/com/vickbt/notflix/NotflixApplication.kt @@ -8,7 +8,6 @@ import org.koin.android.ext.koin.androidLogger import org.koin.core.logger.Level class NotflixApplication : Application() { - override fun onCreate() { super.onCreate() diff --git a/appAndroid/src/main/java/com/vickbt/notflix/ui/activity/MainActivity.kt b/appAndroid/src/main/java/com/vickbt/notflix/ui/activity/MainActivity.kt index f11c1700..3e0067ca 100644 --- a/appAndroid/src/main/java/com/vickbt/notflix/ui/activity/MainActivity.kt +++ b/appAndroid/src/main/java/com/vickbt/notflix/ui/activity/MainActivity.kt @@ -8,7 +8,6 @@ import com.vickbt.shared.ui.screens.main.MainScreen @ExperimentalAnimationApi class MainActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/appDesktop/src/main/kotlin/com/vickbt/notflix/ui/windows/MainWindow.kt b/appDesktop/src/main/kotlin/com/vickbt/notflix/ui/windows/MainWindow.kt index d898212c..f10472cf 100644 --- a/appDesktop/src/main/kotlin/com/vickbt/notflix/ui/windows/MainWindow.kt +++ b/appDesktop/src/main/kotlin/com/vickbt/notflix/ui/windows/MainWindow.kt @@ -14,11 +14,12 @@ fun MainWindow(applicationScope: ApplicationScope) { Window( onCloseRequest = { applicationScope.exitApplication() }, title = "Notflix", - state = rememberWindowState( - position = WindowPosition.Aligned(Alignment.Center), - width = 1080.dp, - height = 800.dp, - ) + state = + rememberWindowState( + position = WindowPosition.Aligned(Alignment.Center), + width = 1080.dp, + height = 800.dp, + ), ) { MainScreen() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 72eee98b..fdd9ec7c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] kotlin = "1.9.21" gradle = "8.1.0" -ktLint = "11.6.0" +ktLint = "12.1.1" detekt = "1.19.0" gradleVersionUpdate = "0.50.0" googleServices = "4.4.0" diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index b1cf759c..9e34a8c1 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -131,7 +131,7 @@ buildkonfig { buildConfigField( STRING, "API_KEY", - gradleLocalProperties(rootDir).getProperty("api_key") ?: "" + gradleLocalProperties(rootDir).getProperty("api_key") ?: "", ) } } diff --git a/shared/src/androidMain/kotlin/com/vickbt/shared/di/Module.kt b/shared/src/androidMain/kotlin/com/vickbt/shared/di/Module.kt index ff1fbba6..dedaafa1 100644 --- a/shared/src/androidMain/kotlin/com/vickbt/shared/di/Module.kt +++ b/shared/src/androidMain/kotlin/com/vickbt/shared/di/Module.kt @@ -5,7 +5,8 @@ import com.vickbt.shared.utils.DatastoreFactory import org.koin.core.module.Module import org.koin.dsl.module -actual fun platformModule(): Module = module { - single { DatabaseDriverFactory(context = get()) } - single { DatastoreFactory(context = get()).createDatastore() } -} +actual fun platformModule(): Module = + module { + single { DatabaseDriverFactory(context = get()) } + single { DatastoreFactory(context = get()).createDatastore() } + } diff --git a/shared/src/androidMain/kotlin/com/vickbt/shared/utils/ContextUtils.kt b/shared/src/androidMain/kotlin/com/vickbt/shared/utils/ContextUtils.kt index c785b307..0e2fbd4f 100644 --- a/shared/src/androidMain/kotlin/com/vickbt/shared/utils/ContextUtils.kt +++ b/shared/src/androidMain/kotlin/com/vickbt/shared/utils/ContextUtils.kt @@ -3,12 +3,12 @@ package com.vickbt.shared.utils import android.content.Context object ContextUtils { - private var kmpApplicationContext: Context? = null val context - get() = kmpApplicationContext - ?: error("Android context has not been set. Please call setContext in your Application's onCreate.") + get() = + kmpApplicationContext + ?: error("Android context has not been set. Please call setContext in your Application's onCreate.") fun setContext(context: Context) { kmpApplicationContext = context.applicationContext diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/cache/sqldelight/daos/FavoriteMovieDao.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/cache/sqldelight/daos/FavoriteMovieDao.kt index 2424c8d1..1d10b892 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/cache/sqldelight/daos/FavoriteMovieDao.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/cache/sqldelight/daos/FavoriteMovieDao.kt @@ -12,7 +12,6 @@ import kotlinx.datetime.TimeZone import kotlinx.datetime.toLocalDateTime class FavoriteMovieDao(private val databaseDriverFactory: DatabaseDriverFactory) { - val appDatabase = AppDatabase(driver = databaseDriverFactory.createDriver()) val dbQuery = appDatabase.appDatabaseQueries @@ -35,8 +34,9 @@ class FavoriteMovieDao(private val databaseDriverFactory: DatabaseDriverFactory) title = movie.title, voteAverage = movie.voteAverage, voteCount = movie.voteCount?.toLong(), - createdAt = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()) - .toString() + createdAt = + Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()) + .toString(), ) } } @@ -45,8 +45,7 @@ class FavoriteMovieDao(private val databaseDriverFactory: DatabaseDriverFactory) fun getAllFavoriteMovies() = dbQuery.getAllFavoriteMovies().asFlow().mapToList(Dispatchers.IO) /**Get single movies from FavoriteMovie table based on its ID*/ - fun getFavoriteMovie(movieId: Int) = - dbQuery.getFavoriteMovie(id = movieId.toLong()).executeAsOne() + fun getFavoriteMovie(movieId: Int) = dbQuery.getFavoriteMovie(id = movieId.toLong()).executeAsOne() /**Delete favorite movie details based on its ID*/ fun deleteFavouriteMovie(movieId: Int) = dbQuery.deleteFavoriteMovie(id = movieId.toLong()) @@ -55,6 +54,5 @@ class FavoriteMovieDao(private val databaseDriverFactory: DatabaseDriverFactory) fun deleteAllFavouriteMovies() = dbQuery.deleteAllFavoriteMovies() /**Return value depending on whether movie details is in FavoriteMovie table*/ - fun isMovieFavorite(movieId: Int) = - dbQuery.isMovieFavorite(id = movieId.toLong()).executeAsOneOrNull() + fun isMovieFavorite(movieId: Int) = dbQuery.isMovieFavorite(id = movieId.toLong()).executeAsOneOrNull() } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/FavoritesRepositoryImpl.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/FavoritesRepositoryImpl.kt index 602cfb86..2b1748a4 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/FavoritesRepositoryImpl.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/FavoritesRepositoryImpl.kt @@ -9,7 +9,6 @@ import kotlinx.coroutines.flow.map class FavoritesRepositoryImpl(private val favoriteMovieDao: FavoriteMovieDao) : FavoritesRepository { - override suspend fun getFavouriteMovies(): Flow> { return favoriteMovieDao.getAllFavoriteMovies() .map { it.map { movieDetail -> movieDetail.toDomain() } } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MovieDetailsRepositoryImpl.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MovieDetailsRepositoryImpl.kt index a356f257..9b02c6d4 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MovieDetailsRepositoryImpl.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MovieDetailsRepositoryImpl.kt @@ -21,9 +21,8 @@ import kotlinx.coroutines.flow.flowOf class MovieDetailsRepositoryImpl( private val httpClient: HttpClient, - private val favoriteMovieDao: FavoriteMovieDao + private val favoriteMovieDao: FavoriteMovieDao, ) : MovieDetailsRepository { - override suspend fun fetchMovieDetails(movieId: Int): Flow> { val isMovieCached = isMovieFavorite(movieId = movieId) @@ -40,7 +39,7 @@ class MovieDetailsRepositoryImpl( val response = httpClient.get(urlString = "movie/$movieId").body() response.toDomain() - } + }, ) } } @@ -51,22 +50,23 @@ class MovieDetailsRepositoryImpl( val response = httpClient.get(urlString = "movie/$movieId/credits").body() response.toDomain() - } + }, ) } override suspend fun fetchSimilarMovies( movieId: Int, - page: Int + page: Int, ): Flow?>> { return flowOf( safeApiCall { - val response = httpClient.get(urlString = "movie/$movieId/similar") { - parameter("page", page) - }.body() + val response = + httpClient.get(urlString = "movie/$movieId/similar") { + parameter("page", page) + }.body() response.movies?.map { it.toDomain() } - } + }, ) } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MoviesRepositoryImpl.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MoviesRepositoryImpl.kt index 6f8d2f8e..3d9f5bb6 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MoviesRepositoryImpl.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/MoviesRepositoryImpl.kt @@ -14,58 +14,61 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flowOf class MoviesRepositoryImpl constructor( - private val httpClient: HttpClient + private val httpClient: HttpClient, ) : MoviesRepository { - override suspend fun fetchNowPlayingMovies(page: Int): Flow?>> { return flowOf( safeApiCall { - val response = httpClient.get(urlString = "movie/now_playing") { - parameter("page", page) - }.body() + val response = + httpClient.get(urlString = "movie/now_playing") { + parameter("page", page) + }.body() response.movies?.map { it.toDomain() } - } + }, ) } override suspend fun fetchTrendingMovies( mediaType: String, timeWindow: String, - page: Int + page: Int, ): Flow?>> { return flowOf( safeApiCall { - val response = httpClient.get(urlString = "trending/$mediaType/$timeWindow") { - parameter("page", page) - }.body() + val response = + httpClient.get(urlString = "trending/$mediaType/$timeWindow") { + parameter("page", page) + }.body() response.movies?.map { it.toDomain() } - } + }, ) } override suspend fun fetchPopularMovies(page: Int): Flow?>> { return flowOf( safeApiCall { - val response = httpClient.get(urlString = "movie/popular") { - parameter("page", page) - }.body() + val response = + httpClient.get(urlString = "movie/popular") { + parameter("page", page) + }.body() response.movies?.map { it.toDomain() } - } + }, ) } override suspend fun fetchUpcomingMovies(page: Int): Flow?>> { return flowOf( safeApiCall { - val response = httpClient.get(urlString = "movie/upcoming") { - parameter("page", page) - }.body() + val response = + httpClient.get(urlString = "movie/upcoming") { + parameter("page", page) + }.body() response.movies?.map { it.toDomain() } - } + }, ) } @@ -81,17 +84,18 @@ class MoviesRepositoryImpl constructor( override suspend fun searchMovie( movieName: String, - page: Int + page: Int, ): Flow?>> { return flowOf( safeApiCall { - val response = httpClient.get(urlString = "search/movie") { - parameter("query", movieName) - parameter("page", page) - }.body() + val response = + httpClient.get(urlString = "search/movie") { + parameter("query", movieName) + parameter("page", page) + }.body() response.movies?.map { it.toDomain() } - } + }, ) } } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/SettingsRepositoryImpl.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/SettingsRepositoryImpl.kt index ee9afc0b..c678d68a 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/SettingsRepositoryImpl.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/datasources/SettingsRepositoryImpl.kt @@ -11,10 +11,12 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map class SettingsRepositoryImpl( - private val dataStore: DataStore + private val dataStore: DataStore, ) : SettingsRepository { - - override suspend fun savePreferenceSelection(key: String, selection: Int) { + override suspend fun savePreferenceSelection( + key: String, + selection: Int, + ) { dataStore.edit { preferences -> preferences[intPreferencesKey(key)] = selection } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/DtoToDomain.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/DtoToDomain.kt index 02095236..87ac7a85 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/DtoToDomain.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/DtoToDomain.kt @@ -28,7 +28,7 @@ fun MovieDto.toDomain(): Movie { video = this.video, voteAverage = this.voteAverage, voteCount = this.voteCount, - mediaType = this.mediaType + mediaType = this.mediaType, ) } @@ -51,7 +51,7 @@ fun MovieDetailsDto.toDomain(): MovieDetails { title = this.title, video = this.video, voteAverage = this.voteAverage, - voteCount = this.voteCount + voteCount = this.voteCount, ) } @@ -63,14 +63,14 @@ fun ActorDto.toDomain(): Actor { id = this.id, name = this.name, originalName = this.originalName, - profilePath = this.profilePath + profilePath = this.profilePath, ) } fun CastDto.toDomain(): Cast { return Cast( actor = this.actor?.map { it.toDomain() }, - id = this.id + id = this.id, ) } @@ -85,7 +85,7 @@ fun VideoDto.toDomain(): Video { publishedAt = this.publishedAt, site = this.site, size = this.size, - type = this.type + type = this.type, ) } @@ -100,6 +100,6 @@ fun ErrorResponseDto.toDomain(): ErrorResponse { return ErrorResponse( success = this.success, statusCode = this.statusCode, - statusMessage = this.statusMessage + statusMessage = this.statusMessage, ) } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/EntityToDomain.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/EntityToDomain.kt index f1774f55..f7a99337 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/EntityToDomain.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/mappers/EntityToDomain.kt @@ -22,6 +22,6 @@ fun FavoriteMovieEntity.toDomain(): MovieDetails { title = this.title, video = null, voteAverage = this.voteAverage, - voteCount = this.voteCount?.toInt() + voteCount = this.voteCount?.toInt(), ) } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ActorDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ActorDto.kt index 436efbed..2998f96a 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ActorDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ActorDto.kt @@ -5,25 +5,18 @@ import kotlinx.serialization.Serializable @Serializable data class ActorDto( - @SerialName("cast_id") val castId: Int? = null, - @SerialName("character") val character: String? = null, - @SerialName("credit_id") val creditId: String? = null, - @SerialName("id") val id: Int, - @SerialName("name") val name: String? = null, - @SerialName("original_name") val originalName: String? = null, - @SerialName("profile_path") - val profilePath: String? = null + val profilePath: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ApiError.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ApiError.kt index 86512362..146d5446 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ApiError.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ApiError.kt @@ -5,13 +5,10 @@ import kotlinx.serialization.Serializable @Serializable data class ApiError( - @SerialName("status_code") val statusCode: Int?, - @SerialName("status_message") val statusMessage: String?, - @SerialName("success") - val success: Boolean? + val success: Boolean?, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/CastDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/CastDto.kt index a6192fe8..7dfacf1d 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/CastDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/CastDto.kt @@ -5,10 +5,8 @@ import kotlinx.serialization.Serializable @Serializable data class CastDto( - @SerialName("cast") val actor: List? = null, - @SerialName("id") - val id: Int + val id: Int, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/DatesDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/DatesDto.kt index 12df74db..e0c11ae5 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/DatesDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/DatesDto.kt @@ -7,7 +7,6 @@ import kotlinx.serialization.Serializable data class DatesDto( @SerialName("maximum") val maximum: String? = null, - @SerialName("minimum") - val minimum: String? = null + val minimum: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ErrorResponseDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ErrorResponseDto.kt index db5713c7..cb706674 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ErrorResponseDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/ErrorResponseDto.kt @@ -7,10 +7,8 @@ import kotlinx.serialization.Serializable data class ErrorResponseDto( @SerialName("success") val success: Boolean, - @SerialName("status_code") val statusCode: Int, - @SerialName("status_message") - val statusMessage: String + val statusMessage: String, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/GenreDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/GenreDto.kt index 28fde62a..a138e28b 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/GenreDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/GenreDto.kt @@ -5,10 +5,8 @@ import kotlinx.serialization.Serializable @Serializable data class GenreDto( - @SerialName("id") val id: Int? = null, - @SerialName("name") - val name: String? = null + val name: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDetailsDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDetailsDto.kt index 30763330..b2605d59 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDetailsDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDetailsDto.kt @@ -5,64 +5,44 @@ import kotlinx.serialization.Serializable @Serializable data class MovieDetailsDto( - @SerialName("adult") val adult: Boolean? = null, - @SerialName("backdrop_path") val backdropPath: String? = null, - @SerialName("genres") val genres: List? = null, - @SerialName("homepage") val homepage: String? = null, - @SerialName("id") val id: Int, - @SerialName("imdb_id") val imdbId: String? = null, - @SerialName("original_language") val originalLanguage: String? = null, - @SerialName("original_title") val originalTitle: String? = null, - @SerialName("overview") val overview: String? = null, - @SerialName("popularity") val popularity: Double? = null, - @SerialName("poster_path") val posterPath: String? = null, - @SerialName("release_date") val releaseDate: String? = null, - @SerialName("runtime") val runtime: Int? = null, - @SerialName("spoken_languages") val spokenLanguages: List? = null, - @SerialName("status") val status: String? = null, - @SerialName("tagline") val tagline: String? = null, - @SerialName("title") val title: String? = null, - @SerialName("video") val video: Boolean? = null, - @SerialName("vote_average") val voteAverage: Double? = null, - @SerialName("vote_count") - val voteCount: Int? = null + val voteCount: Int? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDto.kt index c828f465..53871ff0 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieDto.kt @@ -7,47 +7,32 @@ import kotlinx.serialization.Serializable data class MovieDto( @SerialName("adult") val adult: Boolean? = null, - @SerialName("backdrop_path") val backdropPath: String? = null, - @SerialName("genre_ids") val genreIds: List? = null, - @SerialName("id") val id: Int, - @SerialName("original_language") val originalLanguage: String? = null, - @SerialName("original_title") val originalTitle: String? = null, - @SerialName("overview") val overview: String? = null, - @SerialName("popularity") val popularity: Double? = null, - @SerialName("poster_path") val posterPath: String? = null, - @SerialName("release_date") val releaseDate: String? = null, - @SerialName("title") val title: String? = null, - @SerialName("video") val video: Boolean? = null, - @SerialName("vote_average") val voteAverage: Double? = null, - @SerialName("vote_count") val voteCount: Int? = null, - @SerialName("media_type") - val mediaType: String? = null - + val mediaType: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieResultsDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieResultsDto.kt index f6fed87a..e214b77f 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieResultsDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieResultsDto.kt @@ -7,13 +7,10 @@ import kotlinx.serialization.Serializable data class MovieResultsDto( @SerialName("page") val page: Int? = null, - @SerialName("results") val movies: List? = null, - @SerialName("total_pages") val totalPages: Int? = null, - @SerialName("total_results") - val totalResults: Int? = null + val totalResults: Int? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieVideoDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieVideoDto.kt index 908655f8..0edaac75 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieVideoDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/MovieVideoDto.kt @@ -5,10 +5,8 @@ import kotlinx.serialization.Serializable @Serializable data class MovieVideoDto( - @SerialName("id") val id: Int? = null, - @SerialName("results") - val videos: List? = null + val videos: List? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/SpokenLanguageDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/SpokenLanguageDto.kt index 22046062..5831975f 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/SpokenLanguageDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/SpokenLanguageDto.kt @@ -5,13 +5,10 @@ import kotlinx.serialization.Serializable @Serializable data class SpokenLanguageDto( - @SerialName("english_name") val englishName: String? = null, - @SerialName("iso_639_1") val iso6391: String? = null, - @SerialName("name") - val name: String? = null + val name: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/VideoDto.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/VideoDto.kt index 4e6a1213..d7c6d6c5 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/VideoDto.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/models/VideoDto.kt @@ -5,34 +5,24 @@ import kotlinx.serialization.Serializable @Serializable data class VideoDto( - @SerialName("id") val id: String? = null, - @SerialName("iso_3166_1") val iso31661: String? = null, - @SerialName("iso_639_1") val iso6391: String? = null, - @SerialName("key") val key: String? = null, - @SerialName("name") val name: String? = null, - @SerialName("official") val official: Boolean? = null, - @SerialName("published_at") val publishedAt: String? = null, - @SerialName("site") val site: String? = null, - @SerialName("size") val size: Int? = null, - @SerialName("type") - val type: String? = null + val type: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/utils/SafeApiCall.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/utils/SafeApiCall.kt index 819c727f..a369899d 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/utils/SafeApiCall.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/data/network/utils/SafeApiCall.kt @@ -40,11 +40,11 @@ suspend fun safeApiCall(apiCall: suspend () -> T): ResultState { * */ internal suspend fun parseNetworkError( errorResponse: HttpResponse? = null, - exception: Exception? = null + exception: Exception? = null, ): Exception { throw errorResponse?.body()?.toDomain() ?: ErrorResponse( success = false, statusCode = 0, - statusMessage = exception?.message ?: "Error" + statusMessage = exception?.message ?: "Error", ) } diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/di/CommonModule.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/di/CommonModule.kt index bf07b291..4f76ced4 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/di/CommonModule.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/di/CommonModule.kt @@ -34,63 +34,65 @@ import org.koin.compose.viewmodel.dsl.viewModelOf import org.koin.core.module.Module import org.koin.dsl.module -fun commonModule(enableNetworkLogs: Boolean) = module { - /** - * Creates a http client for Ktor that is provided to the - * API client via constructor injection - */ - single { - HttpClient { - expectSuccess = true - addDefaultResponseValidation() +fun commonModule(enableNetworkLogs: Boolean) = + module { + /** + * Creates a http client for Ktor that is provided to the + * API client via constructor injection + */ + single { + HttpClient { + expectSuccess = true + addDefaultResponseValidation() - defaultRequest { - url { - protocol = URLProtocol.HTTPS - host = BASE_URL - path(URL_PATH) - parameters.append("api_key", BuildKonfig.API_KEY) + defaultRequest { + url { + protocol = URLProtocol.HTTPS + host = BASE_URL + path(URL_PATH) + parameters.append("api_key", BuildKonfig.API_KEY) + } } - } - if (enableNetworkLogs) { - install(Logging) { - level = LogLevel.HEADERS - logger = object : Logger { - override fun log(message: String) { - Napier.i(tag = "Http Client", message = message) - } + if (enableNetworkLogs) { + install(Logging) { + level = LogLevel.HEADERS + logger = + object : Logger { + override fun log(message: String) { + Napier.i(tag = "Http Client", message = message) + } + } + }.also { + Napier.base(DebugAntilog()) } - }.also { - Napier.base(DebugAntilog()) } - } - install(ContentNegotiation) { - json( - Json { - ignoreUnknownKeys = true - isLenient = true - } - ) + install(ContentNegotiation) { + json( + Json { + ignoreUnknownKeys = true + isLenient = true + }, + ) + } } } - } - single { FavoriteMovieDao(databaseDriverFactory = get()) } + single { FavoriteMovieDao(databaseDriverFactory = get()) } - single { MoviesRepositoryImpl(httpClient = get()) } - single { - MovieDetailsRepositoryImpl(httpClient = get(), favoriteMovieDao = get()) - } - single { FavoritesRepositoryImpl(favoriteMovieDao = get()) } - single { SettingsRepositoryImpl(dataStore = get()) } + single { MoviesRepositoryImpl(httpClient = get()) } + single { + MovieDetailsRepositoryImpl(httpClient = get(), favoriteMovieDao = get()) + } + single { FavoritesRepositoryImpl(favoriteMovieDao = get()) } + single { SettingsRepositoryImpl(dataStore = get()) } - viewModelOf(::MainViewModel) - viewModelOf(::HomeViewModel) - viewModelOf(::DetailsViewModel) - viewModelOf(::SettingsViewModel) - viewModelOf(::FavoritesViewModel) -} + viewModelOf(::MainViewModel) + viewModelOf(::HomeViewModel) + viewModelOf(::DetailsViewModel) + viewModelOf(::SettingsViewModel) + viewModelOf(::FavoritesViewModel) + } expect fun platformModule(): Module diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/di/Koin.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/di/Koin.kt index b1224854..674ad0a9 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/di/Koin.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/di/Koin.kt @@ -4,11 +4,13 @@ import org.koin.core.KoinApplication import org.koin.core.context.startKoin import org.koin.dsl.KoinAppDeclaration -fun initKoin(enableNetworkLogs: Boolean = true, appDeclaration: KoinAppDeclaration = {}) = - startKoin { - appDeclaration() - modules(platformModule(), commonModule(enableNetworkLogs = enableNetworkLogs)) - } +fun initKoin( + enableNetworkLogs: Boolean = true, + appDeclaration: KoinAppDeclaration = {}, +) = startKoin { + appDeclaration() + modules(platformModule(), commonModule(enableNetworkLogs = enableNetworkLogs)) +} // called by iOS etc // fun initKoin() = initKoin(enableNetworkLogs = false) {} diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Actor.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Actor.kt index 8cec87ee..55287091 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Actor.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Actor.kt @@ -1,18 +1,11 @@ package com.vickbt.shared.domain.models data class Actor( - val castId: Int?, - val character: String?, - val creditId: String?, - val id: Int, - val name: String?, - val originalName: String?, - - val profilePath: String? + val profilePath: String?, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Cast.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Cast.kt index 2920bf53..97d4d163 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Cast.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Cast.kt @@ -1,8 +1,6 @@ package com.vickbt.shared.domain.models data class Cast( - val actor: List? = null, - - val id: Int + val id: Int, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Dates.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Dates.kt index 816b54c4..6513858d 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Dates.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Dates.kt @@ -2,6 +2,5 @@ package com.vickbt.shared.domain.models data class Dates( val maximum: String?, - - val minimum: String? + val minimum: String?, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/ErrorResponse.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/ErrorResponse.kt index dbf02b63..a67a676f 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/ErrorResponse.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/ErrorResponse.kt @@ -3,5 +3,5 @@ package com.vickbt.shared.domain.models data class ErrorResponse( val success: Boolean, val statusCode: Int, - val statusMessage: String + val statusMessage: String, ) : Exception() diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Genre.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Genre.kt index 5b4bbbc8..05cbc8dc 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Genre.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Genre.kt @@ -1,8 +1,6 @@ package com.vickbt.shared.domain.models data class Genre( - val id: Int? = null, - - val name: String? = null + val name: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Movie.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Movie.kt index f25be479..ee69beec 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Movie.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/Movie.kt @@ -2,36 +2,20 @@ package com.vickbt.shared.domain.models data class Movie( val adult: Boolean? = null, - val backdropPath: String? = null, - val id: Int? = null, - val originalLanguage: String? = null, - val originalTitle: String? = null, - val overview: String? = null, - val popularity: Double? = null, - val posterPath: String? = null, - val releaseDate: String? = null, - val title: String? = null, - val video: Boolean? = null, - val voteAverage: Double? = null, - val voteCount: Int? = null, - val category: String? = null, - val isFavorite: Boolean? = null, - val cacheId: Int? = 0, - - val mediaType: String? = null + val mediaType: String? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieDetails.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieDetails.kt index f410d5f0..5742c18e 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieDetails.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieDetails.kt @@ -1,40 +1,22 @@ package com.vickbt.shared.domain.models data class MovieDetails( - val adult: Boolean? = null, - val backdropPath: String? = null, - val homepage: String? = null, - val id: Int, - val imdbId: String? = null, - val originalLanguage: String? = null, - val originalTitle: String? = null, - val overview: String? = null, - val popularity: Double? = null, - val posterPath: String? = null, - val releaseDate: String? = null, - val runtime: Int? = null, - val status: String? = null, - val tagline: String? = null, - val title: String? = null, - val video: Boolean? = null, - val voteAverage: Double? = null, - - val voteCount: Int? = null + val voteCount: Int? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieResults.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieResults.kt index ea2cbdf4..9a65f36b 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieResults.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieResults.kt @@ -1,12 +1,8 @@ package com.vickbt.shared.domain.models data class MovieResults( - val page: Int? = null, - val movies: List? = null, - val totalPages: Int? = null, - - val totalResults: Int? = null + val totalResults: Int? = null, ) diff --git a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieVideo.kt b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieVideo.kt index 04bbd8cb..27167400 100644 --- a/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieVideo.kt +++ b/shared/src/commonMain/kotlin/com/vickbt/shared/domain/models/MovieVideo.kt @@ -2,6 +2,5 @@ package com.vickbt.shared.domain.models data class MovieVideo( val id: Int? = null, - - val videos: List