|
|
@@ -1245,6 +1245,16 @@ export class ShopDatabase {
|
|
|
return stmt.all(shopContentId) as ShopEmbedding[];
|
|
|
}
|
|
|
|
|
|
+ getAllShopEmbeddings(shopId: string): ShopEmbedding[] {
|
|
|
+ const stmt = this.db.prepare(`
|
|
|
+ SELECT se.* FROM shop_embeddings se
|
|
|
+ JOIN shop_content sc ON se.shop_content_id = sc.id
|
|
|
+ WHERE sc.shop_id = ?
|
|
|
+ ORDER BY se.created_at DESC
|
|
|
+ `);
|
|
|
+ return stmt.all(shopId) as ShopEmbedding[];
|
|
|
+ }
|
|
|
+
|
|
|
deleteShopEmbedding(id: string): void {
|
|
|
this.db.prepare(`
|
|
|
DELETE FROM shop_embeddings
|
|
|
@@ -1407,12 +1417,13 @@ export class ShopDatabase {
|
|
|
/**
|
|
|
* Get shop embedding statistics
|
|
|
*/
|
|
|
- getShopEmbeddingsStats(shopId: string): { total_embeddings: number; completed: number; failed: number } {
|
|
|
+ getShopEmbeddingsStats(shopId: string): { total_embeddings: number; completed: number; failed: number; pending: number } {
|
|
|
const stats = this.db.prepare(`
|
|
|
SELECT
|
|
|
COUNT(*) as total_embeddings,
|
|
|
SUM(CASE WHEN embedding_status = 'completed' THEN 1 ELSE 0 END) as completed,
|
|
|
- SUM(CASE WHEN embedding_status = 'failed' THEN 1 ELSE 0 END) as failed
|
|
|
+ SUM(CASE WHEN embedding_status = 'failed' THEN 1 ELSE 0 END) as failed,
|
|
|
+ SUM(CASE WHEN embedding_status = 'pending' THEN 1 ELSE 0 END) as pending
|
|
|
FROM shop_embeddings se
|
|
|
JOIN shop_content sc ON se.shop_content_id = sc.id
|
|
|
WHERE sc.shop_id = ?
|
|
|
@@ -1421,7 +1432,8 @@ export class ShopDatabase {
|
|
|
return {
|
|
|
total_embeddings: stats?.total_embeddings || 0,
|
|
|
completed: stats?.completed || 0,
|
|
|
- failed: stats?.failed || 0
|
|
|
+ failed: stats?.failed || 0,
|
|
|
+ pending: stats?.pending || 0
|
|
|
};
|
|
|
}
|
|
|
|