using LiteDB; namespace StabilityMatrix.Core.Models.Database; /// /// Represents a locally indexed model file. /// public class LocalModelFile { /// /// Relative path to the file from the root model directory. /// [BsonId] public required string RelativePath { get; set; } /// /// Type of the model file. /// public required SharedFolderType SharedFolderType { get; set; } /// /// Optional connected model information. /// public ConnectedModelInfo? ConnectedModelInfo { get; set; } /// /// Optional preview image relative path. /// public string? PreviewImageRelativePath { get; set; } public string GetFullPath(string rootModelDirectory) { return Path.Combine(rootModelDirectory, RelativePath); } public string? GetPreviewImageFullPath(string rootModelDirectory) { return PreviewImageRelativePath == null ? null : Path.Combine(rootModelDirectory, PreviewImageRelativePath); } public static readonly HashSet SupportedCheckpointExtensions = new() { ".safetensors", ".pt", ".ckpt", ".pth", ".bin" }; public static readonly HashSet SupportedImageExtensions = new() { ".png", ".jpg", ".jpeg" }; public static readonly HashSet SupportedMetadataExtensions = new() { ".json" }; }