Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,8 @@ $RECYCLE.BIN/
.DS_Store
/packages

TODO.txt
TODO.txt

# Front-react build output in wwwroot
SDMeta.Api/wwwroot/*
!SDMeta.Api/wwwroot/.gitkeep
84 changes: 84 additions & 0 deletions SDMeta.Api/Contracts/ApiContracts.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
using SDMeta.Cache;

namespace SDMeta.Api.Contracts;

public sealed record ApiError(string Code, string Message, object? Details = null);

public sealed record ImageListItem(
string ImageId,
string FileName,
string? FullPromptHash,
string ThumbnailUrl,
string ContentUrl);

public sealed record PromptGroup(
string FullPromptHash,
int Count,
IReadOnlyList<ImageListItem> Items);

public sealed record ImageListResponse(
IReadOnlyList<ImageListItem>? Items,
IReadOnlyList<PromptGroup>? Groups,
string? NextCursor,
int TotalApprox);

public sealed record ParsedPrompt(
string? Positive,
string? Negative,
string? Parameters,
string? Warnings);

public sealed record ImageDetailResponse(
string ImageId,
string FileName,
DateTime LastUpdatedUtc,
long LengthBytes,
PromptFormat PromptFormat,
string? PromptRaw,
ParsedPrompt? PromptParsed,
string? Model,
string? ModelHash,
string? PromptHash,
string? NegativePromptHash,
bool Exists);

public sealed record ModelResponseItem(
string? Model,
string? ModelHash,
int Count,
string Label);

public sealed record StartScanResponse(Guid ScanId);

public sealed record PartialScanRequest(
IReadOnlyList<string>? Added,
IReadOnlyList<string>? Removed,
bool UsePendingWatcherQueue = false);

public enum ScanStatus
{
Queued,
Running,
Completed,
Failed,
}

public sealed record ScanStateResponse(
Guid ScanId,
string Type,
ScanStatus Status,
float Progress,
int AddedCount,
int RemovedCount,
DateTime StartedUtc,
DateTime? CompletedUtc,
string? Error,
long Revision);

public sealed record PendingChangesResponse(int AddedCount, int RemovedCount);

public sealed record StorageSettingsResponse(
IReadOnlyList<string> ImageDirs,
string ThumbnailDir,
string DbPath,
long? DbSizeBytes);
Loading
Loading