package models import ( "database/sql" "time" ) type Role string const ( RoleAdmin Role = "admin" RoleUser Role = "user" ) type User struct { ID string `json:"id"` Email string `json:"email"` PasswordHash string `json:"-"` Role Role `json:"role"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } type UserAsset struct { ID string `json:"id"` UserID string `json:"user_id"` Symbol string `json:"symbol"` Name string `json:"name"` CreatedAt time.Time `json:"created_at"` } type Source struct { ID string `json:"id"` Name string `json:"name"` Type string `json:"type"` Enabled bool `json:"enabled"` CreatedAt time.Time `json:"created_at"` } type Article struct { ID string `json:"id"` SourceID string `json:"source_id"` SourceName string `json:"source_name,omitempty"` Title string `json:"title"` Content string `json:"content"` URL string `json:"url"` PublishedAt sql.NullTime `json:"published_at"` CreatedAt time.Time `json:"created_at"` Symbols []string `json:"symbols,omitempty"` } type ArticleSymbol struct { ID string `json:"id"` ArticleID string `json:"article_id"` Symbol string `json:"symbol"` } type ScrapeCredential struct { ID string `json:"id"` SourceID string `json:"source_id"` Username string `json:"username"` PasswordEncrypted string `json:"-"` UpdatedAt time.Time `json:"updated_at"` } type ScrapeJob struct { ID string `json:"id"` SourceID string `json:"source_id"` SourceName string `json:"source_name,omitempty"` Status string `json:"status"` StartedAt sql.NullTime `json:"started_at"` FinishedAt sql.NullTime `json:"finished_at"` ArticlesFound int `json:"articles_found"` ErrorMsg string `json:"error_msg"` CreatedAt time.Time `json:"created_at"` } type AIProvider struct { ID string `json:"id"` Name string `json:"name"` APIKeyEncrypted string `json:"-"` Model string `json:"model"` Endpoint string `json:"endpoint"` IsActive bool `json:"is_active"` CreatedAt time.Time `json:"created_at"` } type Summary struct { ID string `json:"id"` UserID string `json:"user_id"` Content string `json:"content"` AIProviderID *string `json:"ai_provider_id"` GeneratedAt time.Time `json:"generated_at"` } type Setting struct { Key string `json:"key"` Value string `json:"value"` }