mirror of
https://github.com/Dvorinka/Trackeep.git
synced 2026-06-03 20:12:58 +00:00
first test
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// AISummary represents an AI-generated summary
|
||||
type AISummary struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
|
||||
UserID uint `json:"user_id" gorm:"not null;index"`
|
||||
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||
|
||||
// Source content
|
||||
ContentType string `json:"content_type" gorm:"not null"` // "bookmark", "note", "file"
|
||||
ContentID uint `json:"content_id" gorm:"not null"`
|
||||
|
||||
// Summary data
|
||||
Title string `json:"title"`
|
||||
Summary string `json:"summary" gorm:"type:text"`
|
||||
KeyPoints string `json:"key_points" gorm:"type:text"` // JSON array of key points
|
||||
Tags string `json:"tags" gorm:"type:text"` // JSON array of suggested tags
|
||||
ReadTime int `json:"read_time"` // Estimated reading time in minutes
|
||||
Complexity string `json:"complexity" gorm:"default:'medium'"` // "low", "medium", "high"
|
||||
|
||||
// AI metadata
|
||||
ModelUsed string `json:"model_used"`
|
||||
ProcessingMs int64 `json:"processing_ms"`
|
||||
TokenCount int `json:"token_count"`
|
||||
Confidence float64 `json:"confidence"` // AI confidence score 0-1
|
||||
LastAnalyzed time.Time `json:"last_analyzed"`
|
||||
}
|
||||
|
||||
// AITaskSuggestion represents AI-generated task suggestions
|
||||
type AITaskSuggestion struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
|
||||
UserID uint `json:"user_id" gorm:"not null;index"`
|
||||
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||
|
||||
// Suggestion data
|
||||
Title string `json:"title" gorm:"not null"`
|
||||
Description string `json:"description" gorm:"type:text"`
|
||||
Priority string `json:"priority" gorm:"default:'medium'"` // "low", "medium", "high", "urgent"
|
||||
Category string `json:"category"` // "work", "personal", "learning", "health", etc.
|
||||
|
||||
// Context and reasoning
|
||||
Reasoning string `json:"reasoning" gorm:"type:text"` // Why this task is suggested
|
||||
ContextType string `json:"context_type"` // "calendar", "bookmarks", "deadlines", "habits"
|
||||
ContextData string `json:"context_data" gorm:"type:text"` // JSON data about context
|
||||
Deadline *time.Time `json:"deadline"`
|
||||
EstimatedTime int `json:"estimated_time"` // in minutes
|
||||
|
||||
// AI metadata
|
||||
ModelUsed string `json:"model_used"`
|
||||
Confidence float64 `json:"confidence"` // AI confidence score 0-1
|
||||
Accepted bool `json:"accepted" gorm:"default:false"`
|
||||
Dismissed bool `json:"dismissed" gorm:"default:false"`
|
||||
}
|
||||
|
||||
// AITagSuggestion represents AI-generated tag suggestions
|
||||
type AITagSuggestion struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
|
||||
UserID uint `json:"user_id" gorm:"not null;index"`
|
||||
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||
|
||||
// Target content
|
||||
ContentType string `json:"content_type" gorm:"not null"` // "bookmark", "note", "task", "file"
|
||||
ContentID uint `json:"content_id" gorm:"not null"`
|
||||
|
||||
// Tag suggestions
|
||||
SuggestedTags string `json:"suggested_tags" gorm:"type:text"` // JSON array of suggested tags
|
||||
ExistingTags string `json:"existing_tags" gorm:"type:text"` // JSON array of current tags
|
||||
Relevance float64 `json:"relevance"` // Relevance score 0-1
|
||||
|
||||
// AI metadata
|
||||
ModelUsed string `json:"model_used"`
|
||||
Confidence float64 `json:"confidence"`
|
||||
Applied bool `json:"applied" gorm:"default:false"`
|
||||
Dismissed bool `json:"dismissed" gorm:"default:false"`
|
||||
}
|
||||
|
||||
// AIContentGeneration represents AI-generated content
|
||||
type AIContentGeneration struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
|
||||
UserID uint `json:"user_id" gorm:"not null;index"`
|
||||
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||
|
||||
// Generation request
|
||||
Prompt string `json:"prompt" gorm:"type:text"`
|
||||
ContentType string `json:"content_type" gorm:"not null"` // "blog", "code", "email", "summary", "outline"
|
||||
Context string `json:"context" gorm:"type:text"` // Additional context for generation
|
||||
|
||||
// Generated content
|
||||
Title string `json:"title"`
|
||||
Content string `json:"content" gorm:"type:text"`
|
||||
WordCount int `json:"word_count"`
|
||||
ReadTime int `json:"read_time"` // Estimated reading time in minutes
|
||||
|
||||
// AI metadata
|
||||
ModelUsed string `json:"model_used"`
|
||||
ProcessingMs int64 `json:"processing_ms"`
|
||||
TokenCount int `json:"token_count"`
|
||||
Confidence float64 `json:"confidence"`
|
||||
Temperature float64 `json:"temperature"`
|
||||
Used bool `json:"used" gorm:"default:false"`
|
||||
Rating *int `json:"rating"` // User rating 1-5
|
||||
Feedback string `json:"feedback" gorm:"type:text"`
|
||||
}
|
||||
|
||||
// AICodeReview represents AI code review analysis
|
||||
type AICodeReview struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
|
||||
UserID uint `json:"user_id" gorm:"not null;index"`
|
||||
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||
|
||||
// Code context
|
||||
RepositoryURL string `json:"repository_url"`
|
||||
CommitHash string `json:"commit_hash"`
|
||||
FilePath string `json:"file_path"`
|
||||
PRNumber int `json:"pr_number"`
|
||||
BranchName string `json:"branch_name"`
|
||||
|
||||
// Review data
|
||||
OriginalCode string `json:"original_code" gorm:"type:text"`
|
||||
Suggestions string `json:"suggestions" gorm:"type:text"` // JSON array of suggestions
|
||||
Issues string `json:"issues" gorm:"type:text"` // JSON array of issues found
|
||||
Score int `json:"score" gorm:"default:0"` // Code quality score 0-100
|
||||
SecurityIssues string `json:"security_issues" gorm:"type:text"` // JSON array of security issues
|
||||
Performance string `json:"performance" gorm:"type:text"` // Performance suggestions
|
||||
|
||||
// AI metadata
|
||||
ModelUsed string `json:"model_used"`
|
||||
Confidence float64 `json:"confidence"`
|
||||
ProcessingMs int64 `json:"processing_ms"`
|
||||
TokenCount int `json:"token_count"`
|
||||
Applied bool `json:"applied" gorm:"default:false"`
|
||||
}
|
||||
|
||||
// AILearningRecommendation represents AI-generated learning recommendations
|
||||
type AILearningRecommendation struct {
|
||||
ID uint `json:"id" gorm:"primaryKey"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
||||
|
||||
UserID uint `json:"user_id" gorm:"not null;index"`
|
||||
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
||||
|
||||
// Recommendation data
|
||||
Title string `json:"title" gorm:"not null"`
|
||||
Description string `json:"description" gorm:"type:text"`
|
||||
Category string `json:"category"` // "programming", "design", "business", etc.
|
||||
Difficulty string `json:"difficulty"` // "beginner", "intermediate", "advanced"
|
||||
EstimatedHours int `json:"estimated_hours"` // Estimated time to complete
|
||||
Prerequisites string `json:"prerequisites" gorm:"type:text"` // JSON array of prerequisites
|
||||
Resources string `json:"resources" gorm:"type:text"` // JSON array of learning resources
|
||||
CourseID *uint `json:"course_id"` // Link to existing course if applicable
|
||||
|
||||
// Personalization
|
||||
Reasoning string `json:"reasoning" gorm:"type:text"` // Why this is recommended
|
||||
RelevanceScore float64 `json:"relevance_score"` // How relevant to user 0-1
|
||||
CareerImpact string `json:"career_impact"` // Career impact description
|
||||
SkillGained string `json:"skill_gained"` // Primary skill gained
|
||||
|
||||
// AI metadata
|
||||
ModelUsed string `json:"model_used"`
|
||||
Confidence float64 `json:"confidence"`
|
||||
Started bool `json:"started" gorm:"default:false"`
|
||||
Completed bool `json:"completed" gorm:"default:false"`
|
||||
Rating *int `json:"rating"` // User rating 1-5
|
||||
Feedback string `json:"feedback" gorm:"type:text"`
|
||||
}
|
||||
Reference in New Issue
Block a user