35 lines
1.7 KiB
C#
35 lines
1.7 KiB
C#
using PlotLine.Models;
|
|
using PlotLine.Services;
|
|
|
|
namespace PlotLine.ViewModels;
|
|
|
|
public sealed class StoryPointViewModel
|
|
{
|
|
public Project Project { get; init; } = new();
|
|
public IReadOnlyList<Book> Books { get; init; } = [];
|
|
public IReadOnlyList<Chapter> Chapters { get; init; } = [];
|
|
public IReadOnlyList<Scene> Scenes { get; init; } = [];
|
|
public StoryPointSnapshot? Snapshot { get; init; }
|
|
}
|
|
|
|
public sealed class StoryPointSnapshot
|
|
{
|
|
public int ProjectID { get; init; }
|
|
public Book Book { get; init; } = new();
|
|
public Chapter Chapter { get; init; } = new();
|
|
public Scene Scene { get; init; } = new();
|
|
public IReadOnlyList<StoryPointCharacter> Characters { get; init; } = [];
|
|
public IReadOnlyList<RelationshipMapRelationshipViewModel> Relationships { get; init; } = [];
|
|
public IReadOnlyList<AssetStoryStateViewModel> Assets { get; init; } = [];
|
|
public LocationStoryStateViewModel? Location { get; init; }
|
|
public StoryPointSource? PreviousLocationUse { get; init; }
|
|
public IReadOnlyList<StoryPointThread> Threads { get; init; } = [];
|
|
public IReadOnlyList<ContinuityWarningViewModel> Warnings { get; init; } = [];
|
|
public IReadOnlyDictionary<int, StoryPointSource> Sources { get; init; } = new Dictionary<int, StoryPointSource>();
|
|
}
|
|
|
|
public sealed record StoryPointSource(int SceneID, string Label);
|
|
public sealed record StoryPointCharacter(SceneCharacter Appearance, CharacterAgeDisplayResult Age,
|
|
CharacterStoryStateViewModel? State, StoryPointSource? PreviousAppearance, IReadOnlyList<CharacterKnowledgeItem> Knowledge);
|
|
public sealed record StoryPointThread(int PlotThreadID, string Title, string Type, string PlotLineName, StoryPointSource? Source, string State);
|