using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using xAiModels.Models.Dtos;
namespace xAiModels.Interfaces
{
///
/// All Data Manipulation Requirements ...
///
public interface IXAiDataProvider
{
//
#region Loaders ...
///
/// Load Projects List of Specified Owner ...
///
///
///
///
///
///
Task> LoadProjects(
string ownerId,
bool fillConversations = false,
bool fillConversationMessages = false,
CancellationToken cancellationToken = default
);
///
/// Load List of Conversations for Specified Project ...
///
///
///
///
///
Task> LoadConversations(
Guid projectId,
bool fillMessages = false,
CancellationToken cancellationToken = default
);
///
/// Load Messages of Specified Conversation ...
///
///
///
///
Task> LoadMessages(
Guid conversationId,
CancellationToken cancellationToken = default
);
#endregion
//
#region Creator/Adders ...
///
/// Create Project ...
///
///
///
///
///
///
Task CreateProject(
string ownerId,
XAiProjectDto item = null,
string connectionId = null,
CancellationToken cancellationToken = default
);
///
/// Create Conversation ...
///
///
///
///
///
///
Task CreateConversation(
Guid projectId,
XAiConversationDto item = null,
string connectionId = null,
CancellationToken cancellationToken = default
);
///
/// Add Message ...
///
///
///
///
///
///
Task AddMessage(
Guid conversationId,
XAiMessageDto item,
string connectionId = null,
CancellationToken cancellationToken = default
);
#endregion
}
}