import Foundation @MainActor @Observable final class AIHistoryViewModel { var selectedFilter: AIHistoryFilter = .all var showDeleteAllConfirmation = false var entryPendingDeletion: AIHistoryEntry? private let historyManager: AIHistoryManager init(historyManager: AIHistoryManager = .shared) { self.historyManager = historyManager } var filteredEntries: [AIHistoryEntry] { historyManager.entries(matching: selectedFilter) } var isEmpty: Bool { historyManager.isEmpty } var hasFilteredEntries: Bool { !filteredEntries.isEmpty } func requestDelete(_ entry: AIHistoryEntry) { entryPendingDeletion = entry } func confirmDelete() { guard let entry = entryPendingDeletion else { return } historyManager.delete(id: entry.id) entryPendingDeletion = nil } func cancelDelete() { entryPendingDeletion = nil } func requestDeleteAll() { showDeleteAllConfirmation = true } func confirmDeleteAll() { historyManager.deleteAll() showDeleteAllConfirmation = false } func cancelDeleteAll() { showDeleteAllConfirmation = false } }