Remove chapter-level POV character
Character assignment now lives on beats only, per batch-assign. Drops Chapter.PovCharacterId (entity, contracts, service, agent/import/MCP tools, web UI) and the backing column via migration.
This commit is contained in:
@@ -173,8 +173,6 @@ export interface ChapterSummary {
|
||||
number: number
|
||||
title: string
|
||||
summary: string | null
|
||||
povCharacterId: string | null
|
||||
povCharacterName: string | null
|
||||
setting: string | null
|
||||
status: DraftStatus
|
||||
targetWordCount: number | null
|
||||
|
||||
@@ -84,22 +84,7 @@ export default function ChapterPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="mt-4 grid gap-4 sm:grid-cols-2">
|
||||
<label className="block">
|
||||
<span className="label">POV character</span>
|
||||
<select
|
||||
className="input"
|
||||
value={chapter.povCharacterId ?? ''}
|
||||
onChange={(e) => patch({ povCharacterId: e.target.value || null })}
|
||||
>
|
||||
<option value="">—</option>
|
||||
{characters?.map((c) => (
|
||||
<option key={c.id} value={c.id}>
|
||||
{c.name}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
</label>
|
||||
<div className="mt-4">
|
||||
<AutoField
|
||||
label="Setting"
|
||||
value={chapter.setting}
|
||||
|
||||
@@ -57,7 +57,6 @@ export default function ChaptersPage() {
|
||||
)}
|
||||
</div>
|
||||
<div className="flex shrink-0 items-center gap-3 text-xs muted">
|
||||
{chapter.povCharacterName && <span>POV: {chapter.povCharacterName}</span>}
|
||||
<span>{chapter.beatCount} beats</span>
|
||||
<span>{chapter.wordCount.toLocaleString()} words</span>
|
||||
<StatusBadge status={chapter.status} />
|
||||
|
||||
Reference in New Issue
Block a user