// // FilterViewModel.swift // Feels // // Created by Trey Tartt on 1/17/22. // import Foundation class FilterViewModel: ObservableObject { @Published public var entryStartDate: Date = Date() @Published public var entryEndDate: Date = Date() @Published var selectedDays = [Int]() // year, month, items @Published public private(set) var data = [Int: [Int: [DayChartView]]]() @Published public private(set) var numberOfRatings: Int = 0 public private(set) var uncategorizedData = [MoodEntry]() { didSet { self.numberOfRatings = uncategorizedData.count } } private let chartViewBuilder = DayChartViewChartBuilder() public func filterEntries(startDate: Date, endDate: Date) { let filteredEntries = PersistenceController.shared.getData(startDate: startDate, endDate: endDate, includedDays: selectedDays) data.removeAll() let filledOutData = chartViewBuilder.buildGridData(withData: filteredEntries) data = filledOutData uncategorizedData = filteredEntries } }