This commit is contained in:
@@ -86,6 +86,7 @@ type KolPromptRepository interface {
|
||||
Create(ctx context.Context, input CreateKolPromptInput) (*KolPrompt, error)
|
||||
GetByID(ctx context.Context, tenantID, id int64) (*KolPrompt, error)
|
||||
ListByPackage(ctx context.Context, tenantID, packageID int64) ([]KolPrompt, error)
|
||||
CountByPackages(ctx context.Context, tenantID int64, packageIDs []int64) (map[int64]int, error)
|
||||
ListActiveByPackage(ctx context.Context, tenantID, packageID int64) ([]ActiveKolPrompt, error)
|
||||
UpdateMetadata(ctx context.Context, input UpdateKolPromptMetadataInput) error
|
||||
Save(ctx context.Context, input SaveKolPromptInput) error
|
||||
@@ -269,6 +270,39 @@ ORDER BY sort_order ASC, created_at ASC
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (r *kolPromptRepository) CountByPackages(ctx context.Context, tenantID int64, packageIDs []int64) (map[int64]int, error) {
|
||||
counts := make(map[int64]int, len(packageIDs))
|
||||
if len(packageIDs) == 0 {
|
||||
return counts, nil
|
||||
}
|
||||
|
||||
rows, err := r.db.Query(ctx, `
|
||||
SELECT package_id, COUNT(*)::int
|
||||
FROM kol_prompts
|
||||
WHERE tenant_id = $1
|
||||
AND package_id = ANY($2::bigint[])
|
||||
AND deleted_at IS NULL
|
||||
GROUP BY package_id
|
||||
`, tenantID, packageIDs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var packageID int64
|
||||
var count int
|
||||
if err := rows.Scan(&packageID, &count); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
counts[packageID] = count
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return counts, nil
|
||||
}
|
||||
|
||||
func (r *kolPromptRepository) ListActiveByPackage(ctx context.Context, tenantID, packageID int64) ([]ActiveKolPrompt, error) {
|
||||
rows, err := r.q.ListActiveKolPromptsByPackage(ctx, generated.ListActiveKolPromptsByPackageParams{
|
||||
PackageID: packageID,
|
||||
|
||||
Reference in New Issue
Block a user