PlotDirector/PlotLine/Controllers/DynamicsController.cs
2026-06-06 20:36:54 +01:00

42 lines
1.3 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using PlotLine.Services;
namespace PlotLine.Controllers;
[Authorize]
public sealed class DynamicsController(IDynamicsService dynamics) : Controller
{
public async Task<IActionResult> Story(int projectId)
{
var model = await dynamics.GetStoryDynamicsAsync(projectId);
return model is null ? NotFound() : View(model);
}
public async Task<IActionResult> Character(int id)
{
var model = await dynamics.GetCharacterArcAsync(id);
return model is null ? NotFound() : View(model);
}
public async Task<IActionResult> Relationship(int id)
{
var model = await dynamics.GetRelationshipEvolutionAsync(id);
return model is null ? NotFound() : View(model);
}
public async Task<IActionResult> Knowledge(int id)
{
var model = await dynamics.GetKnowledgeTimelineAsync(id);
return model is null ? NotFound() : View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> RunChecks(int projectId, int? bookId, int? sceneId)
{
await dynamics.RunContinuityChecksAsync(projectId, bookId, sceneId);
return RedirectToAction(nameof(Story), new { projectId });
}
}