70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
using PlotLine.Models;
|
|
|
|
namespace PlotLine.ViewModels;
|
|
|
|
public sealed class IllustrationLibraryAdminViewModel
|
|
{
|
|
public IllustrationLibraryFilter Filter { get; init; } = new();
|
|
public IllustrationLibrarySummary Summary { get; init; } = new();
|
|
public IReadOnlyList<IllustrationLibraryItem> Items { get; init; } = [];
|
|
public IReadOnlyList<string> Categories { get; init; } = IllustrationLibraryCategories.All;
|
|
public IReadOnlyList<string> Statuses { get; init; } =
|
|
[
|
|
IllustrationLibraryStatuses.Planned,
|
|
IllustrationLibraryStatuses.Queued,
|
|
IllustrationLibraryStatuses.Generating,
|
|
IllustrationLibraryStatuses.Generated,
|
|
IllustrationLibraryStatuses.Approved,
|
|
IllustrationLibraryStatuses.Rejected,
|
|
IllustrationLibraryStatuses.Failed,
|
|
IllustrationLibraryStatuses.Superseded,
|
|
IllustrationLibraryStatuses.Disabled
|
|
];
|
|
public int StarterCharacterCount { get; init; }
|
|
public int StarterLocationCount { get; init; }
|
|
public int StarterAssetCount { get; init; }
|
|
public IllustrationStarterGenerationPlan StarterGenerationPlan { get; init; } = new(0, 0, 0);
|
|
public string StoragePathHint { get; init; } = "/uploads/story-intelligence-library";
|
|
public string ProviderStatus { get; init; } = string.Empty;
|
|
public int CompletedTotal => Summary.GeneratedCount + Summary.ApprovedCount + Summary.FailedCount + Summary.SupersededCount;
|
|
}
|
|
|
|
public sealed class IllustrationLibraryQueueForm
|
|
{
|
|
public bool Confirmed { get; set; }
|
|
public string? Category { get; set; }
|
|
public string? Status { get; set; }
|
|
public string? Search { get; set; }
|
|
}
|
|
|
|
public sealed class IllustrationLibraryBulkRetryForm
|
|
{
|
|
public string? Category { get; set; }
|
|
public string? Status { get; set; }
|
|
public string? Search { get; set; }
|
|
}
|
|
|
|
public sealed class IllustrationStarterGenerationForm
|
|
{
|
|
public bool Confirmed { get; set; }
|
|
}
|
|
|
|
public sealed class IllustrationLibraryRejectForm
|
|
{
|
|
public string? Reason { get; set; }
|
|
public string? Category { get; set; }
|
|
public string? Status { get; set; }
|
|
public string? Search { get; set; }
|
|
}
|
|
|
|
public sealed class IllustrationLibraryMetadataForm
|
|
{
|
|
public string? DisplayTitle { get; set; }
|
|
public string? ShortDescription { get; set; }
|
|
public string? MetadataJson { get; set; }
|
|
public string? AdminNotes { get; set; }
|
|
public string? Category { get; set; }
|
|
public string? Status { get; set; }
|
|
public string? Search { get; set; }
|
|
}
|