package model

import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update

//Отвечает за запросы к БД.
@Dao
interface TaskDao {
    //Получение всех данных.
    @Query("SELECT * FROM TaskEntity")
    fun getAll(): MutableList<TaskEntity>

    //Получение данных задачи по id.
    @Query("SELECT * FROM TaskEntity WHERE id = (:id)")
    fun getTask(id: Int): TaskEntity

    //Получение выполненых задач.
    @Query("SELECT * FROM TaskEntity WHERE complete IN (true)")
    fun getAllComplete(): MutableList<TaskEntity>

    //Получение не выполненных (актуальных) задач.
    @Query("SELECT * FROM TaskEntity WHERE complete IN (false)")
    fun getAllNotComplete(): MutableList<TaskEntity>

    //Обновление информации о задаче.
    @Update
    fun updateTasks(vararg task: TaskEntity)

    //Добавление задачи.
    @Insert
    fun insertAll(vararg task: TaskEntity)

    //Удаление задачи.
    @Delete
    fun delete(task: TaskEntity)
}