using AIStudio.Tools.Databases.ProvenanceStore;
using AIStudio.Tools.DataBackup;
namespace AIStudio.Tools.ChatArchive;
///
/// Where a backup keeps its chats, for adding them to the chats there are.
///
///
/// A backup holds the chats in the layout of the data folder, cf. DataBackupFormat: every chat in a
/// directory of its own, below its workspace or among the temporary chats.
///
public static class ChatArchiveFormat
{
///
/// Where a backup keeps the workspaces, each in a directory named after its ID.
///
public static readonly string WORKSPACES_PREFIX = DataBackupFormat.DATA_ROOT + DataBackupContents.ENTRIES.First(entry => entry.Kind is DataBackupEntryKind.WORKSPACES).RelativePath;
///
/// Where a backup keeps the temporary chats, each in a directory named after its ID.
///
public static readonly string TEMPORARY_CHATS_PREFIX = DataBackupFormat.DATA_ROOT + DataBackupContents.ENTRIES.First(entry => entry.Kind is DataBackupEntryKind.TEMPORARY_CHATS).RelativePath;
///
/// Where a backup keeps the provenance store, which holds what the chats received besides their messages.
///
public static readonly string PROVENANCE_STORE_ENTRY = DataBackupFormat.DATA_ROOT + DataBackupContents.ENTRIES.First(entry => entry.Kind is DataBackupEntryKind.CHAT_PROVENANCE).RelativePath + SqliteProvenanceStoreClientImplementation.DATABASE_FILENAME;
///
/// The file storing the workspace or chat name.
///
public const string NAME_FILE_NAME = "name";
///
/// The file storing the serialized chat thread.
///
public const string THREAD_FILE_NAME = "thread.json";
}