using BotSharp.Abstraction.Users.Models; namespace BotSharp.Abstraction.Repositories; public interface IBotSharpRepository { IQueryable Users { get; } IQueryable Agents { get; } IQueryable UserAgents { get; } IQueryable Conversations { get; } int Transaction(Action action); void Add(object entity); #region User User GetUserByEmail(string email); void CreateUser(User user); #endregion #region Agent void UpdateAgent(Agent agent, AgentField field); Agent? GetAgent(string agentId); List GetAgentResponses(string agentId, string prefix, string intent); string GetAgentTemplate(string agentId, string templateName); #endregion #region Conversation 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); #endregion }