PlotDirector/PlotLine/Views/Onboarding/StoryIntelligenceContext.cshtml

108 lines
6.0 KiB
Plaintext

@model StoryIntelligenceOverviewViewModel
@{
ViewData["Title"] = "Story and portrait context";
}
<section class="onboarding-shell" aria-labelledby="story-intelligence-context-title">
<div class="onboarding-panel onboarding-analysis-panel">
<partial name="_OnboardingJourneyHeader" model="@(new OnboardingJourneyHeaderViewModel { CurrentStep = Model.WizardContextStep, TotalSteps = Model.WizardTotalSteps })" />
<div class="onboarding-copy">
<p class="eyebrow">Step @Model.WizardContextStep of @Model.WizardTotalSteps</p>
<h1 id="story-intelligence-context-title">Story and Portrait Context</h1>
<p>Set the context choices for this manuscript before the analysis starts.</p>
</div>
@if (TempData["OnboardingStoryIntelligenceError"] is string error)
{
<div class="alert alert-danger">@error</div>
}
@if (Model.ExistingBatchID.HasValue)
{
<section class="onboarding-story-card">
<h2>Analysis has already started</h2>
<p>You can continue reviewing progress for the approved chapters.</p>
<div class="onboarding-actions">
<a class="btn btn-primary" asp-action="StoryIntelligenceReview" asp-route-batchId="@Model.ExistingBatchID">Continue pipeline</a>
<form asp-action="ScanManuscript" method="post">
<button class="btn btn-outline-secondary" type="submit">Scan manuscript again</button>
</form>
</div>
</section>
}
else
{
<form asp-action="StartStoryIntelligence" method="post" class="onboarding-analysis-setup">
<div class="onboarding-analysis-setup__header">
<div>
<p class="eyebrow">Pre-analysis setup</p>
<h2>Context choices</h2>
<p>Explicit manuscript evidence always wins. These choices guide unresolved generated portraits and broad story context.</p>
</div>
<strong>Required before analysis</strong>
</div>
<div class="onboarding-analysis-controls">
<label>
Appearance baseline
<select class="form-select" name="appearancePreference">
<option value="@StoryMemoryAppearancePreferences.Balanced">Balanced diverse cast</option>
<option value="@StoryMemoryAppearancePreferences.ExplicitEvidenceOnly">Explicit evidence only</option>
<option value="@StoryMemoryAppearancePreferences.PredominantlyLight">Predominantly light-skinned cast</option>
<option value="@StoryMemoryAppearancePreferences.PredominantlyMedium">Predominantly medium-skinned cast</option>
<option value="@StoryMemoryAppearancePreferences.PredominantlyDark">Predominantly dark-skinned cast</option>
<option value="@StoryMemoryAppearancePreferences.CustomMix">Custom mix</option>
</select>
</label>
<label>
Primary character age group
<select class="form-select" name="primaryAgeGroup">
<option value="">No baseline</option>
<option value="Late teen / early 20s">Late teen / early 20s</option>
<option value="Young teen">Young teen</option>
<option value="Older teen">Older teen</option>
<option value="Young adult">Young adult</option>
<option value="Adult">Adult</option>
<option value="Middle-aged adult">Middle-aged adult</option>
<option value="Senior">Senior</option>
</select>
</label>
<label>
Era
<select class="form-select" name="storyEra">
<option value="">No baseline</option>
<option value="1980s">1980s</option>
<option value="1970s">1970s</option>
<option value="1990s">1990s</option>
<option value="2000s">2000s</option>
<option value="Contemporary">Contemporary</option>
<option value="Victorian">Victorian</option>
<option value="Medieval">Medieval</option>
<option value="Near future">Near future</option>
</select>
</label>
<label>
Location
<select class="form-select" name="storyLocation">
<option value="">No baseline</option>
<option value="UK">UK</option>
<option value="United States">United States</option>
<option value="Europe">Europe</option>
<option value="Urban">Urban</option>
<option value="Suburban">Suburban</option>
<option value="Rural">Rural</option>
<option value="Fantasy world">Fantasy world</option>
<option value="Science fiction setting">Science fiction setting</option>
</select>
</label>
</div>
<div class="onboarding-actions">
<a class="btn btn-outline-secondary" asp-action="StoryIntelligence">Back</a>
<button class="btn btn-primary" type="submit" disabled="@(!Model.CanStart)">Save context and analyse manuscript</button>
</div>
</form>
}
</div>
</section>