Skip to content

Commit

Permalink
feature: added base code for room db
Browse files Browse the repository at this point in the history
  • Loading branch information
ArindomGhosh committed Feb 15, 2022
1 parent d568faa commit a5f864d
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 0 deletions.
27 changes: 27 additions & 0 deletions app/src/main/java/com/arindom/koa2/di/AppModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.arindom.koa2.di

import android.content.Context
import androidx.room.Room
import com.arindom.koa2.infra.local.database.KaoDatabase
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Singleton
@Provides
fun providesRoomDb(
@ApplicationContext context: Context
): KaoDatabase {
return Room.databaseBuilder(
context,
KaoDatabase::class.java,
"kao_database"
).build()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.arindom.koa2.infra.local.database

import androidx.room.Database
import androidx.room.RoomDatabase
import com.arindom.koa2.infra.local.database.entities.FavoriteMovieDao
import com.arindom.koa2.infra.local.database.entities.FavouriteMoviesEntity

@Database(
entities = [FavouriteMoviesEntity::class],
version = 1
)
abstract class KaoDatabase : RoomDatabase() {
abstract fun getFavouriteMovieDao(): FavoriteMovieDao
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.arindom.koa2.infra.local.database.entities

import androidx.room.Dao
import androidx.room.Query

@Dao
interface FavoriteMovieDao {
@Query("Select * from favourite_movies")
suspend fun getMyFavorites(): List<FavouriteMoviesEntity>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.arindom.koa2.infra.local.database.entities

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey

@Entity(tableName = "favourite_movies")
data class FavouriteMoviesEntity(
@PrimaryKey(autoGenerate = true)
var id: Int,
@ColumnInfo(name = "movie_name") val movieName: String,
@ColumnInfo(name = "movie_id") val movieId: String,
@ColumnInfo(name = "movie_poster") val poster: String,
@ColumnInfo(name = "director") val director: String,
@ColumnInfo(name = "year") val year: String,
)

0 comments on commit a5f864d

Please sign in to comment.