Files
Atlas/internal/store/provider_models.go
T
renjue 2b020bb782
CI / docker (push) Successful in 2m58s
实现 Atlas AI 平台一期能力并完成品牌化改造。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 23:35:19 +08:00

54 lines
1.5 KiB
Go

package store
import "context"
type ProviderModel struct {
ID int64 `json:"id"`
ProviderID int64 `json:"provider_id"`
ModelID string `json:"model_id"`
Name string `json:"name"`
CreatedAt string `json:"created_at"`
}
func (s *Store) ListProviderModels(ctx context.Context, providerID int64) ([]ProviderModel, error) {
rows, err := s.db.QueryContext(ctx,
`SELECT id, provider_id, model_id, name, created_at FROM provider_models WHERE provider_id = ? ORDER BY id ASC`, providerID,
)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ProviderModel
for rows.Next() {
var m ProviderModel
if err := rows.Scan(&m.ID, &m.ProviderID, &m.ModelID, &m.Name, &m.CreatedAt); err != nil {
return nil, err
}
items = append(items, m)
}
return items, rows.Err()
}
func (s *Store) CreateProviderModel(ctx context.Context, m *ProviderModel) (int64, error) {
res, err := s.db.ExecContext(ctx,
`INSERT INTO provider_models (provider_id, model_id, name) VALUES (?, ?, ?)`,
m.ProviderID, m.ModelID, m.Name,
)
if err != nil {
return 0, err
}
return res.LastInsertId()
}
func (s *Store) DeleteProviderModel(ctx context.Context, providerID int64, modelID string) error {
_, err := s.db.ExecContext(ctx,
`DELETE FROM provider_models WHERE provider_id = ? AND model_id = ?`, providerID, modelID,
)
return err
}
func (s *Store) DeleteProviderModelsByProvider(ctx context.Context, providerID int64) error {
_, err := s.db.ExecContext(ctx, `DELETE FROM provider_models WHERE provider_id = ?`, providerID)
return err
}