summaryrefslogtreecommitdiff
path: root/internal/models/types.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-01-31 20:16:12 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-01-31 20:16:12 -1000
commitcbb0b53de1d06918c142171fd084f14f03798bc1 (patch)
treebeb642057178bce8f50e3ad67f5a62671e3e6dda /internal/models/types.go
parentd39220eac03fbc5b714bde989665ed1c92dd24a5 (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'internal/models/types.go')
-rw-r--r--internal/models/types.go30
1 files changed, 30 insertions, 0 deletions
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"`
+}