From 389b72e55b04ccfc02b04eb81cb8f7bb7a5c8b59 Mon Sep 17 00:00:00 2001 From: T Date: Wed, 13 Aug 2025 13:04:05 -0600 Subject: history filtering --- internal/tui/history_box.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'internal/tui/history_box.go') diff --git a/internal/tui/history_box.go b/internal/tui/history_box.go index d2f71f9..c5c045e 100644 --- a/internal/tui/history_box.go +++ b/internal/tui/history_box.go @@ -26,8 +26,17 @@ type HistorySummaryKey struct { ProjectID int64 } +// HistoryFilter represents the filtering criteria for the history view +type HistoryFilter struct { + StartDate time.Time // Required - start of date range to display + EndDate *time.Time // Optional - end of date range to display (nil means no end date) + ClientID *int64 // Optional - filter to specific client + ProjectID *int64 // Optional - filter to specific project +} + type HistoryBoxModel struct { viewLevel HistoryViewLevel + filter HistoryFilter summaryItems []HistorySummaryItem summarySelection int @@ -60,7 +69,17 @@ func (item HistorySummaryItem) key() HistorySummaryKey { // NewHistoryBoxModel creates a new history box model func NewHistoryBoxModel() HistoryBoxModel { - return HistoryBoxModel{} + now := time.Now() + startOfPreviousMonth := time.Date(now.Year(), now.Month()-1, 1, 0, 0, 0, 0, time.UTC) + + return HistoryBoxModel{ + filter: HistoryFilter{ + StartDate: startOfPreviousMonth, + EndDate: nil, + ClientID: nil, + ProjectID: nil, + }, + } } func buildIndex[T any, K comparable](items []T, keyf func(T) K) map[K][]T { -- cgit v1.2.3