feat(database): add gearTxt field to parsed results and update related functions

This commit is contained in:
kever
2026-05-31 13:52:47 +08:00
parent 886c5fda08
commit bcf5d3d657
11 changed files with 3635 additions and 285 deletions

View File

@@ -87,9 +87,17 @@ func (d *Database) initTables() error {
updated_at INTEGER NOT NULL
);`
optimizerPreferencesTable := `
CREATE TABLE IF NOT EXISTS optimizer_preferences (
hero_id TEXT PRIMARY KEY,
options_json TEXT NOT NULL,
updated_at INTEGER NOT NULL
);`
tables := []string{
parsedDataTable,
settingsTable,
optimizerPreferencesTable,
}
for _, table := range tables {
@@ -221,6 +229,9 @@ func (d *Database) GetSetting(key string) (string, error) {
var value string
err := d.db.QueryRow(stmt, key).Scan(&value)
if err != nil {
if err == sql.ErrNoRows {
return "", nil
}
return "", err
}
return value, nil
@@ -246,3 +257,26 @@ func (d *Database) GetAllSettings() (map[string]string, error) {
return settings, nil
}
// SaveOptimizerPreference saves the latest optimizer options for a hero.
func (d *Database) SaveOptimizerPreference(heroID string, optionsJSON string) error {
stmt := `
INSERT OR REPLACE INTO optimizer_preferences (hero_id, options_json, updated_at)
VALUES (?, ?, ?)`
_, err := d.db.Exec(stmt, heroID, optionsJSON, time.Now().Unix())
return err
}
// GetOptimizerPreference returns saved optimizer options for a hero.
func (d *Database) GetOptimizerPreference(heroID string) (string, error) {
stmt := "SELECT options_json FROM optimizer_preferences WHERE hero_id = ?"
var optionsJSON string
err := d.db.QueryRow(stmt, heroID).Scan(&optionsJSON)
if err != nil {
if err == sql.ErrNoRows {
return "", nil
}
return "", err
}
return optionsJSON, nil
}