mirror of
https://github.com/Dvorinka/Trackeep.git
synced 2026-06-04 12:32:58 +00:00
63 lines
3.4 KiB
Go
63 lines
3.4 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// UserAISettings stores user-specific AI provider configurations
|
|
type UserAISettings 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;uniqueIndex"`
|
|
User User `json:"user,omitempty" gorm:"foreignKey:UserID"`
|
|
|
|
// Mistral Settings
|
|
MistralEnabled *bool `json:"mistral_enabled" gorm:"default:false"`
|
|
MistralAPIKey string `json:"-" gorm:"column:mistral_api_key"` // Encrypted
|
|
MistralModel string `json:"mistral_model" gorm:"default:mistral-small-latest"`
|
|
MistralModelThinking string `json:"mistral_model_thinking" gorm:"default:mistral-large-latest"`
|
|
|
|
// Grok Settings
|
|
GrokEnabled *bool `json:"grok_enabled" gorm:"default:false"`
|
|
GrokAPIKey string `json:"-" gorm:"column:grok_api_key"` // Encrypted
|
|
GrokBaseURL string `json:"grok_base_url" gorm:"default:https://api.x.ai/v1"`
|
|
GrokModel string `json:"grok_model" gorm:"default:grok-4-1-fast-non-reasoning-latest"`
|
|
GrokModelThinking string `json:"grok_model_thinking" gorm:"default:grok-4-1-fast-reasoning-latest"`
|
|
|
|
// DeepSeek Settings
|
|
DeepSeekEnabled *bool `json:"deepseek_enabled" gorm:"default:false"`
|
|
DeepSeekAPIKey string `json:"-" gorm:"column:deepseek_api_key"` // Encrypted
|
|
DeepSeekBaseURL string `json:"deepseek_base_url" gorm:"default:https://api.deepseek.com"`
|
|
DeepSeekModel string `json:"deepseek_model" gorm:"default:deepseek-chat"`
|
|
DeepSeekModelThinking string `json:"deepseek_model_thinking" gorm:"default:deepseek-reasoner"`
|
|
|
|
// Ollama Settings
|
|
OllamaEnabled *bool `json:"ollama_enabled" gorm:"default:false"`
|
|
OllamaBaseURL string `json:"ollama_base_url" gorm:"default:http://localhost:11434"`
|
|
OllamaModel string `json:"ollama_model" gorm:"default:llama3.1"`
|
|
OllamaModelThinking string `json:"ollama_model_thinking" gorm:"default:llama3.1"`
|
|
|
|
// LongCat Settings
|
|
LongCatEnabled *bool `json:"longcat_enabled" gorm:"default:false"`
|
|
LongCatAPIKey string `json:"-" gorm:"column:longcat_api_key"` // Encrypted
|
|
LongCatBaseURL string `json:"longcat_base_url" gorm:"default:https://api.longcat.chat"`
|
|
LongCatOpenAIEndpoint string `json:"longcat_openai_endpoint" gorm:"default:https://api.longcat.chat/openai"`
|
|
LongCatAnthropicEndpoint string `json:"longcat_anthropic_endpoint" gorm:"default:https://api.longcat.chat/anthropic"`
|
|
LongCatModel string `json:"longcat_model" gorm:"default:LongCat-Flash-Chat"`
|
|
LongCatModelThinking string `json:"longcat_model_thinking" gorm:"default:LongCat-Flash-Thinking"`
|
|
LongCatModelThinkingUpgraded string `json:"longcat_model_thinking_upgraded" gorm:"default:LongCat-Flash-Thinking-2601"`
|
|
LongCatFormat string `json:"longcat_format" gorm:"default:openai"`
|
|
|
|
// OpenRouter Settings
|
|
OpenRouterEnabled *bool `json:"openrouter_enabled" gorm:"default:false"`
|
|
OpenRouterAPIKey string `json:"-" gorm:"column:openrouter_api_key"` // Encrypted
|
|
OpenRouterBaseURL string `json:"openrouter_base_url" gorm:"default:https://openrouter.ai/api"`
|
|
OpenRouterModel string `json:"openrouter_model" gorm:"default:openrouter/auto"`
|
|
OpenRouterModelThinking string `json:"openrouter_model_thinking" gorm:"default:openrouter/auto"`
|
|
}
|