diff --git a/app/MindWork AI Studio/Settings/DataModel/DataSourceERI.cs b/app/MindWork AI Studio/Settings/DataModel/DataSourceERI.cs new file mode 100644 index 00000000..6bc76641 --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/DataSourceERI.cs @@ -0,0 +1,33 @@ +namespace AIStudio.Settings.DataModel; + +/// +/// An external data source, accessed via an ERI server, cf. https://github.com/MindWorkAI/ERI. +/// +public readonly record struct DataSourceERI : IDataSource +{ + public DataSourceERI() + { + } + + /// + public uint Num { get; init; } + + /// + public string Id { get; init; } = Guid.Empty.ToString(); + + /// + public string Name { get; init; } = string.Empty; + + /// + public DataSourceType Type { get; init; } = DataSourceType.NONE; + + /// + /// The hostname of the ERI server. + /// + public string Hostname { get; init; } = string.Empty; + + /// + /// The port of the ERI server. + /// + public int Port { get; init; } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/DataModel/DataSourceLocalDirectory.cs b/app/MindWork AI Studio/Settings/DataModel/DataSourceLocalDirectory.cs new file mode 100644 index 00000000..0f9b2fde --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/DataSourceLocalDirectory.cs @@ -0,0 +1,28 @@ +namespace AIStudio.Settings.DataModel; + +/// +/// Represents a local directory as a data source. +/// +public readonly record struct DataSourceLocalDirectory : IDataSource +{ + public DataSourceLocalDirectory() + { + } + + /// + public uint Num { get; init; } + + /// + public string Id { get; init; } = Guid.Empty.ToString(); + + /// + public string Name { get; init; } = string.Empty; + + /// + public DataSourceType Type { get; init; } = DataSourceType.NONE; + + /// + /// The path to the directory. + /// + public string Path { get; init; } = string.Empty; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/DataModel/DataSourceLocalFile.cs b/app/MindWork AI Studio/Settings/DataModel/DataSourceLocalFile.cs new file mode 100644 index 00000000..7c70c76b --- /dev/null +++ b/app/MindWork AI Studio/Settings/DataModel/DataSourceLocalFile.cs @@ -0,0 +1,28 @@ +namespace AIStudio.Settings.DataModel; + +/// +/// Represents one local file as a data source. +/// +public readonly record struct DataSourceLocalFile : IDataSource +{ + public DataSourceLocalFile() + { + } + + /// + public uint Num { get; init; } + + /// + public string Id { get; init; } = Guid.Empty.ToString(); + + /// + public string Name { get; init; } = string.Empty; + + /// + public DataSourceType Type { get; init; } = DataSourceType.NONE; + + /// + /// The path to the file. + /// + public string FilePath { get; init; } = string.Empty; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Settings/IDataSource.cs b/app/MindWork AI Studio/Settings/IDataSource.cs new file mode 100644 index 00000000..7bd59bf0 --- /dev/null +++ b/app/MindWork AI Studio/Settings/IDataSource.cs @@ -0,0 +1,29 @@ +using AIStudio.Settings.DataModel; + +namespace AIStudio.Settings; + +/// +/// The common interface for all data sources. +/// +public interface IDataSource +{ + /// + /// The number of the data source. + /// + public uint Num { get; init; } + + /// + /// The unique identifier of the data source. + /// + public string Id { get; init; } + + /// + /// The name of the data source. + /// + public string Name { get; init; } + + /// + /// Which type of data source is this? + /// + public DataSourceType Type { get; init; } +} \ No newline at end of file