using BotSharp.Abstraction.Routing.Models; using BotSharp.Abstraction.Users.Models; namespace BotSharp.Abstraction.Repositories; public interface IBotSharpRepository { IQueryable Users { get; } IQueryable Agents { get; } IQueryable UserAgents { get; } IQueryable Conversations { get; } IQueryable RoutingItems { get; } IQueryable RoutingProfiles { get; } int Transaction(Action action); void Add(object entity); User GetUserByEmail(string email); void CreateUser(User user); void UpdateAgent(Agent agent); List CreateRoutingItems(List routingItems); List CreateRoutingProfiles(List profiles); void DeleteRoutingItems(); void DeleteRoutingProfiles(); Agent GetAgent(string agentId); List GetAgentResponses(string agentId, string prefix, string intent); void CreateNewConversation(Conversation conversation); string GetConversationDialog(string conversationId); void UpdateConversationDialog(string conversationId, string dialogs); List GetConversationStates(string conversationId); void UpdateConversationStates(string conversationId, List states); Conversation GetConversation(string conversationId); List GetConversations(string userId); string GetAgentTemplate(string agentId, string templateName); }