Files 081931
Files 081931
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.example.volsearch.entity.Airport
import com.example.volsearch.entity.Favorite
import kotlinx.coroutines.flow.Flow
@Dao
interface VolDao{
@Query("SELECT * FROM airport WHERE name LIKE '%' || :query || '%' OR iata_code
LIKE '%' || :query || '%'")
fun searchAirports(query: String): Flow<List<Airport>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertFavorite(favorite: Favorite)
@Delete
suspend fun deleteFavorite(favorite: Favorite)
// entyties
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "airport")
data class Airport(
@PrimaryKey val id:Int =0,
@ColumnInfo(name = "iata_code") val iataCode:String,
val name:String,
val passengers:Int
)
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "favorite")
data class Favorite (
@PrimaryKey(autoGenerate = true) val id:Int=0,
@ColumnInfo(name = "departure_code") val departureCode:String,
@ColumnInfo(name = "destination_code") val destinationCode:String
//model
package com.example.volsearch.model
import com.example.volsearch.entity.Airport
//connection a la bdd
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.example.volsearch.entity.Airport
import com.example.volsearch.entity.Favorite
companion object {
@Volatile
private var INSTANCE: VolDatabase? = null