package com.example.shiftalarm import androidx.room.* @Dao interface ShiftDao { // Override Queries @Query("SELECT * FROM shift_overrides WHERE factory = :factory AND team = :team AND date = :date") suspend fun getOverride(factory: String, team: String, date: String): ShiftOverride? @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertOverride(override: ShiftOverride) @Query("DELETE FROM shift_overrides WHERE factory = :factory AND team = :team AND date = :date") suspend fun deleteOverride(factory: String, team: String, date: String) @Query("SELECT * FROM shift_overrides WHERE factory = :factory AND team = :team AND date LIKE :month || '%'") suspend fun getOverridesForMonth(factory: String, team: String, month: String): List @Query("SELECT * FROM shift_overrides") suspend fun getAllOverrides(): List @Query("DELETE FROM shift_overrides") suspend fun clearOverrides() // Memo Queries @Query("SELECT * FROM daily_memos WHERE date = :date") suspend fun getMemo(date: String): DailyMemo? @Query("SELECT * FROM daily_memos WHERE date LIKE :month || '%'") suspend fun getMemosForMonth(month: String): List @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertMemo(memo: DailyMemo) @Query("DELETE FROM daily_memos WHERE date = :date") suspend fun deleteMemo(date: String) @Query("SELECT * FROM daily_memos") suspend fun getAllMemos(): List @Query("DELETE FROM daily_memos") suspend fun clearMemos() // Custom Alarm Queries @Query("SELECT * FROM custom_alarms ORDER BY time ASC") suspend fun getAllCustomAlarms(): List @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertCustomAlarm(alarm: CustomAlarm): Long @Update suspend fun updateCustomAlarm(alarm: CustomAlarm) @Delete suspend fun deleteCustomAlarm(alarm: CustomAlarm) @Query("DELETE FROM custom_alarms") suspend fun clearCustomAlarms() }