AppDatabase.kt

  1. package com.louisfn.somovie.data.database

  2. import androidx.room.Database
  3. import androidx.room.RoomDatabase
  4. import androidx.room.TypeConverters
  5. import com.louisfn.somovie.data.database.converter.*
  6. import com.louisfn.somovie.data.database.dao.*
  7. import com.louisfn.somovie.data.database.entity.*

  8. @Database(
  9.     entities = [
  10.         RemoteKeyEntity::class,
  11.         MovieEntity::class,
  12.         MovieImageEntity::class,
  13.         MovieGenreCrossRefEntity::class,
  14.         MovieProductionCompanyCrossRefEntity::class,
  15.         MovieProductionCountryEntity::class,
  16.         GenreEntity::class,
  17.         ActorEntity::class,
  18.         CrewMemberEntity::class,
  19.         CompanyEntity::class,
  20.         PersonEntity::class,
  21.         ExploreEntity::class,
  22.         YoutubeVideoEntity::class,
  23.         WatchlistEntity::class,
  24.     ],
  25.     version = 1,
  26. )
  27. @TypeConverters(
  28.     ExploreCategoryConverter::class,
  29.     LocalDateConverter::class,
  30.     InstantConverter::class,
  31.     DurationConverter::class,
  32.     RemoteKeyTypeConverter::class,
  33.     OffsetDateTimeConverter::class,
  34. )
  35. internal abstract class AppDatabase : RoomDatabase() {
  36.     abstract fun remoteKeyDao(): RemoteKeyDao
  37.     abstract fun movieDao(): MovieDao
  38.     abstract fun movieImageDao(): MovieImageDao
  39.     abstract fun movieGenreCrossRefDao(): MovieGenreCrossRefDao
  40.     abstract fun movieProductionCompanyCrossRefDao(): MovieProductionCompanyCrossRefDao
  41.     abstract fun genreDao(): GenreDao
  42.     abstract fun actorDao(): ActorDao
  43.     abstract fun crewMemberDao(): CrewMemberDao
  44.     abstract fun companyDao(): CompanyDao
  45.     abstract fun productionCountryDao(): ProductionCountryDao
  46.     abstract fun personDao(): PersonDao
  47.     abstract fun exploreDao(): ExploreDao
  48.     abstract fun youtubeVideoDao(): YoutubeVideoDao
  49.     abstract fun watchListDao(): WatchlistDao
  50. }