Files
Atlas/internal/store/presets.go
T
renjue 5301557ad2
CI / docker (push) Has been cancelled
实现 Atlas AI 平台一期能力并完成品牌化改造。
引入用户端对话/生图与管理端 Provider 配置,统一 invoke 编排、Gateway、请求日志与模型管理;前端按设计规范拆分布局,Go module 更名为 github.com/rose_cat707/Atlas;生图长任务 SSE 推送;管理端登录防爆破;协议与服务类型联动;Replicate 模型同步修复;用户端创作台 UI 重构;管理端创作历史替代请求日志。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 22:11:05 +08:00

61 lines
1.7 KiB
Go

package store
import "context"
type Preset struct {
ID int64 `json:"id"`
SessionID string `json:"session_id"`
Name string `json:"name"`
ServiceType string `json:"service_type"`
ParamsJSON string `json:"params_json"`
CreatedAt string `json:"created_at"`
}
func (s *Store) ListPresets(ctx context.Context, sessionID, serviceType string) ([]Preset, error) {
q := `SELECT id, session_id, name, service_type, params_json, created_at FROM presets WHERE session_id = ?`
args := []any{sessionID}
if serviceType != "" {
q += ` AND service_type = ?`
args = append(args, serviceType)
}
q += ` ORDER BY id DESC`
rows, err := s.db.QueryContext(ctx, q, args...)
if err != nil {
return nil, err
}
defer rows.Close()
var items []Preset
for rows.Next() {
var p Preset
if err := rows.Scan(&p.ID, &p.SessionID, &p.Name, &p.ServiceType, &p.ParamsJSON, &p.CreatedAt); err != nil {
return nil, err
}
items = append(items, p)
}
return items, rows.Err()
}
func (s *Store) CreatePreset(ctx context.Context, p *Preset) (int64, error) {
res, err := s.db.ExecContext(ctx,
`INSERT INTO presets (session_id, name, service_type, params_json) VALUES (?, ?, ?, ?)`,
p.SessionID, p.Name, p.ServiceType, p.ParamsJSON,
)
if err != nil {
return 0, err
}
return res.LastInsertId()
}
func (s *Store) UpdatePreset(ctx context.Context, p *Preset) error {
_, err := s.db.ExecContext(ctx,
`UPDATE presets SET name=?, params_json=? WHERE id=? AND session_id=?`,
p.Name, p.ParamsJSON, p.ID, p.SessionID,
)
return err
}
func (s *Store) DeletePreset(ctx context.Context, sessionID string, id int64) error {
_, err := s.db.ExecContext(ctx, `DELETE FROM presets WHERE id = ? AND session_id = ?`, id, sessionID)
return err
}