using BotSharp.Abstraction.Repositories.Models; using BotSharp.Abstraction.Repositories.Records; using BotSharp.Abstraction.Routing.Models; using System.Linq; namespace BotSharp.Abstraction.Repositories; public interface IBotSharpRepository { IQueryable User { get; } IQueryable Agent { get; } IQueryable UserAgent { get; } IQueryable Conversation { get; } IQueryable RoutingItem { get; } IQueryable RoutingProfile { get; } int Transaction(Action action); void Add(object entity); UserRecord GetUserByEmail(string email); void CreateUser(UserRecord user); void UpdateAgent(AgentRecord agent); List CreateRoutingItems(List routingItems); List CreateRoutingProfiles(List profiles); void DeleteRoutingItems(); void DeleteRoutingProfiles(); AgentRecord GetAgent(string agentId); List GetAgentResponses(string agentId); void CreateNewConversation(ConversationRecord conversation); string GetConversationDialog(string conversationId); void UpdateConversationDialog(string conversationId, string dialogs); List GetConversationState(string conversationId); void UpdateConversationState(string conversationId, List state); ConversationRecord GetConversation(string conversationId); List GetConversations(string userId); }