using System; using System.Collections.Generic; namespace StellaOps.Cli.Services.Models; internal sealed record OfflineKitBundleDescriptor( string BundleId, string BundleName, string BundleSha256, long BundleSize, Uri BundleDownloadUri, string ManifestName, string ManifestSha256, Uri ManifestDownloadUri, DateTimeOffset CapturedAt, string? Channel, string? Kind, bool IsDelta, string? BaseBundleId, string? BundleSignatureName, Uri? BundleSignatureDownloadUri, string? ManifestSignatureName, Uri? ManifestSignatureDownloadUri, long? ManifestSize); internal sealed record OfflineKitDownloadResult( OfflineKitBundleDescriptor Descriptor, string BundlePath, string ManifestPath, string? BundleSignaturePath, string? ManifestSignaturePath, string MetadataPath, bool FromCache); internal sealed record OfflineKitImportRequest( string BundlePath, string? ManifestPath, string? BundleSignaturePath, string? ManifestSignaturePath, string? BundleId, string? BundleSha256, long? BundleSize, DateTimeOffset? CapturedAt, string? Channel, string? Kind, bool? IsDelta, string? BaseBundleId, string? ManifestSha256, long? ManifestSize); internal sealed record OfflineKitImportResult( string? ImportId, string? Status, DateTimeOffset SubmittedAt, string? Message); internal sealed record OfflineKitStatus( string? BundleId, string? Channel, string? Kind, bool IsDelta, string? BaseBundleId, DateTimeOffset? CapturedAt, DateTimeOffset? ImportedAt, string? BundleSha256, long? BundleSize, IReadOnlyList Components); internal sealed record OfflineKitComponentStatus( string Name, string? Version, string? Digest, DateTimeOffset? CapturedAt, long? SizeBytes); internal sealed record OfflineKitMetadataDocument { public string? BundleId { get; init; } public string BundleName { get; init; } = string.Empty; public string BundleSha256 { get; init; } = string.Empty; public long BundleSize { get; init; } public string BundlePath { get; init; } = string.Empty; public DateTimeOffset CapturedAt { get; init; } public DateTimeOffset DownloadedAt { get; init; } public string? Channel { get; init; } public string? Kind { get; init; } public bool IsDelta { get; init; } public string? BaseBundleId { get; init; } public string ManifestName { get; init; } = string.Empty; public string ManifestSha256 { get; init; } = string.Empty; public long? ManifestSize { get; init; } public string ManifestPath { get; init; } = string.Empty; public string? BundleSignaturePath { get; init; } public string? ManifestSignaturePath { get; init; } }