diff --git a/app/src/main/java/de/miaurizius/shap_planner/activities/MainActivity.kt b/app/src/main/java/de/miaurizius/shap_planner/activities/MainActivity.kt index 31f772f..f315088 100644 --- a/app/src/main/java/de/miaurizius/shap_planner/activities/MainActivity.kt +++ b/app/src/main/java/de/miaurizius/shap_planner/activities/MainActivity.kt @@ -37,6 +37,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import de.miaurizius.shap_planner.UserPreferences import de.miaurizius.shap_planner.entities.Account diff --git a/app/src/main/java/de/miaurizius/shap_planner/entities/Expense.kt b/app/src/main/java/de/miaurizius/shap_planner/entities/Expense.kt index b9f3164..8a17dc1 100644 --- a/app/src/main/java/de/miaurizius/shap_planner/entities/Expense.kt +++ b/app/src/main/java/de/miaurizius/shap_planner/entities/Expense.kt @@ -1,7 +1,15 @@ package de.miaurizius.shap_planner.entities +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Entity +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import kotlinx.coroutines.flow.Flow import java.util.UUID +@Entity(tableName = "expenses") data class Expense ( val id: UUID, val amt: Double, @@ -9,4 +17,16 @@ data class Expense ( val payerId: UUID, val debtors: List -) \ No newline at end of file +) + +@Dao +interface ExpenseDao { + @Query("SELECT * FROM expenses") + fun getAllExpenses(): Flow> + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertExpense(expense: Expense) + + @Delete + suspend fun deleteExpense(expense: Expense) +} \ No newline at end of file diff --git a/app/src/main/java/de/miaurizius/shap_planner/entities/User.kt b/app/src/main/java/de/miaurizius/shap_planner/entities/User.kt index 60f5c05..961fdd3 100644 --- a/app/src/main/java/de/miaurizius/shap_planner/entities/User.kt +++ b/app/src/main/java/de/miaurizius/shap_planner/entities/User.kt @@ -1,8 +1,28 @@ package de.miaurizius.shap_planner.entities +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Entity +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import kotlinx.coroutines.flow.Flow import java.util.UUID +@Entity(tableName = "users") data class User ( val id: UUID, val name: String, -) \ No newline at end of file +) + +@Dao +interface UserDao { + @Query("SELECT * FROM users") + fun getAllUsers(): Flow> + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertUser(user: User) + + @Delete + suspend fun deleteUser(user: User) +} \ No newline at end of file diff --git a/app/src/main/java/de/miaurizius/shap_planner/viewmodels/MainViewModel.kt b/app/src/main/java/de/miaurizius/shap_planner/viewmodels/MainViewModel.kt index 465cfb7..0fa786c 100644 --- a/app/src/main/java/de/miaurizius/shap_planner/viewmodels/MainViewModel.kt +++ b/app/src/main/java/de/miaurizius/shap_planner/viewmodels/MainViewModel.kt @@ -15,11 +15,9 @@ import kotlin.collections.emptyList class MainViewModel(private val accountDao: AccountDao) : ViewModel() { - // Das ist der State, den dein SetContent beobachtet val accounts: StateFlow> = accountDao.getAllAccounts() .stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList()) - // Funktion zum Hinzufügen (z.B. nach Login) fun addAccount(account: Account) { viewModelScope.launch { accountDao.insertAccount(account)