diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-01-31 20:16:12 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-01-31 20:16:12 -1000 |
| commit | cbb0b53de1d06918c142171fd084f14f03798bc1 (patch) | |
| tree | beb642057178bce8f50e3ad67f5a62671e3e6dda /internal/models/types.go | |
| parent | d39220eac03fbc5b714bde989665ed1c92dd24a5 (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.go | 30 |
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"` +} |
