From cbb0b53de1d06918c142171fd084f14f03798bc1 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Sat, 31 Jan 2026 20:16:12 -1000 Subject: Add feature toggles system with settings UI (#74) - Add feature_toggles table (migration 012) - Add source_config table for future source selection (migration 013) - Create settings page at /settings with: - Feature toggle management (enable/disable/create/delete) - Data source configuration (sync and toggle boards/calendars) - Add store methods for feature toggles and source config - Add GetCalendarList and GetTaskLists to Google API clients - Document feature toggle workflow in DESIGN.md Co-Authored-By: Claude Opus 4.5 --- internal/models/types.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'internal/models') diff --git a/internal/models/types.go b/internal/models/types.go index e28d985..ab06ea2 100644 --- a/internal/models/types.go +++ b/internal/models/types.go @@ -114,6 +114,18 @@ type GoogleTask struct { UpdatedAt time.Time `json:"updated_at"` } +// CalendarInfo represents basic info about a Google Calendar +type CalendarInfo struct { + ID string `json:"id"` + Name string `json:"name"` +} + +// TaskListInfo represents basic info about a Google Tasks list +type TaskListInfo struct { + ID string `json:"id"` + Name string `json:"name"` +} + // Bug represents a bug report type Bug struct { ID int64 `json:"id"` @@ -207,3 +219,21 @@ type CompletedTask struct { DueDate *time.Time `json:"due_date,omitempty"` CompletedAt time.Time `json:"completed_at"` } + +// SourceConfig represents a configurable item from a data source +type SourceConfig struct { + ID int64 `json:"id"` + Source string `json:"source"` // trello, todoist, gcal, gtasks + ItemType string `json:"item_type"` // board, project, calendar, tasklist + ItemID string `json:"item_id"` + ItemName string `json:"item_name"` + Enabled bool `json:"enabled"` +} + +// FeatureToggle represents a feature flag +type FeatureToggle struct { + ID int64 `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Enabled bool `json:"enabled"` +} -- cgit v1.2.3