diff --git a/api/README.md b/api/README.md index 9308d5dc44..15862c768d 100644 --- a/api/README.md +++ b/api/README.md @@ -57,6 +57,8 @@ 6. Run migrate + uv run flask db migrate -m "这是生成迁移脚本的命令" + Before the first launch, migrate the database to the latest version. ```bash diff --git a/api/services/conversation_service.py b/api/services/conversation_service.py index afdaa49465..0a459ff7bd 100644 --- a/api/services/conversation_service.py +++ b/api/services/conversation_service.py @@ -172,6 +172,25 @@ class ConversationService: conversation.updated_at = datetime.now(UTC).replace(tzinfo=None) db.session.commit() + @classmethod + def batch_delete(cls, app_model: App, conversation_ids: list[str], user: Optional[Union[Account, EndUser]]): + conversations = ( + db.session.query(Conversation) + .filter( + Conversation.id.in_(conversation_ids), + Conversation.app_id == app_model.id, + Conversation.from_source == ("api" if isinstance(user, EndUser) else "console"), + Conversation.from_end_user_id == (user.id if isinstance(user, EndUser) else None), + Conversation.from_account_id == (user.id if isinstance(user, Account) else None), + Conversation.is_deleted == False, + ).all() + ) + + for conversation in conversations: + conversation.is_deleted = True + conversation.updated_at = datetime.now(UTC).replace(tzinfo=None) + db.session.commit() + @classmethod def get_conversational_variable( cls,