Complete tasks 3.2-3.3: Data models and DynamoDB table schemas

- Defined all 8 data models (Page, Widget, Bookmark, Note, TagAssociation, Group, Share, Preferences)
- Implemented DynamoDB table creation for all tables with proper schemas
- Added GSIs for efficient querying (UserBookmarksIndex, UserNotesIndex, TagItemsIndex, UserSharesIndex)
- Comprehensive test coverage for all table schemas
- Updated init-db command to create all tables
This commit is contained in:
2026-02-18 22:55:06 -05:00
parent 7175ff14ba
commit 9f07b0c6f9
13 changed files with 1363 additions and 6 deletions

View File

@@ -0,0 +1,22 @@
package models
import (
"time"
)
// SearchProvider represents the configured search engine
type SearchProvider string
const (
SearchProviderGoogle SearchProvider = "google"
SearchProviderDuckDuckGo SearchProvider = "duckduckgo"
SearchProviderBing SearchProvider = "bing"
)
// Preferences represents user preferences and settings
type Preferences struct {
UserID string `dynamodbav:"user_id" json:"user_id"`
SearchProvider SearchProvider `dynamodbav:"search_provider" json:"search_provider"`
Theme *string `dynamodbav:"theme,omitempty" json:"theme,omitempty"`
UpdatedAt time.Time `dynamodbav:"updated_at" json:"updated_at"`
}