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:
22
internal/models/preferences.go
Normal file
22
internal/models/preferences.go
Normal 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"`
|
||||
}
|
||||
Reference in New Issue
Block a user