using BotSharp.Abstraction.Users.Models; namespace BotSharp.Abstraction.Repositories; public interface IBotSharpRepository { int Transaction(Action action); void Add(object entity); #region User User? GetUserByEmail(string email); User? GetUserById(string id); void CreateUser(User user); #endregion #region Agent void UpdateAgent(Agent agent, AgentField field); Agent? GetAgent(string agentId); List GetAgents(string? name = null, bool? disabled = null, bool? allowRouting = null, bool? isPublic = null, List? agentIds = null); List GetAgentsByUser(string userId); void BulkInsertAgents(List agents); void BulkInsertUserAgents(List userAgents); bool DeleteAgents(); List GetAgentResponses(string agentId, string prefix, string intent); string GetAgentTemplate(string agentId, string templateName); #endregion #region Conversation void CreateNewConversation(Conversation conversation); List GetConversationDialogs(string conversationId); void AppendConversationDialogs(string conversationId, List dialogs); List GetConversationStates(string conversationId); void UpdateConversationStates(string conversationId, List states); void UpdateConversationStatus(string conversationId, string status); Conversation GetConversation(string conversationId); List GetConversations(string userId); List GetLastConversations(); void AddExectionLogs(string conversationId, List logs); List GetExectionLogs(string conversationId); #endregion }