naco-api/internal/store/FindSimilarUsers.sql.go
2025-12-02 19:33:03 +00:00

66 lines
1.4 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: FindSimilarUsers.sql
package store
import (
"context"
"github.com/lib/pq"
)
const findSimilarUsers = `-- name: FindSimilarUsers :many
SELECT user_id, platform, embedding, top_keywords, style_summary, post_count,
1 - (embedding <=> $1::vector) AS similarity
FROM user_style_profiles
ORDER BY embedding <=> $1::vector
LIMIT $2
`
type FindSimilarUsersParams struct {
Column1 interface{}
Limit int32
}
type FindSimilarUsersRow struct {
UserID string
Platform string
Embedding interface{}
TopKeywords []string
StyleSummary string
PostCount int32
Similarity int32
}
func (q *Queries) FindSimilarUsers(ctx context.Context, arg FindSimilarUsersParams) ([]FindSimilarUsersRow, error) {
rows, err := q.db.QueryContext(ctx, findSimilarUsers, arg.Column1, arg.Limit)
if err != nil {
return nil, err
}
defer rows.Close()
var items []FindSimilarUsersRow
for rows.Next() {
var i FindSimilarUsersRow
if err := rows.Scan(
&i.UserID,
&i.Platform,
&i.Embedding,
pq.Array(&i.TopKeywords),
&i.StyleSummary,
&i.PostCount,
&i.Similarity,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}