- /api/cases (offen/alle), /api/cases/{id}/decide, /api/cases/{id}/statement, /api/decisions
- Ansicht "Vorgaenge": offene Faelle mit Verlauf je Ebene (Lauf-Links), Frist und
"Mensch gerufen"; Reiter Beschluesse mit Reichweite; Zaehler in der Seitenleiste
- Konzept Abschnitt 5: Umsetzung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
namespace ClawdDotNet.Web.Contracts;
|
|
|
|
/// <summary>#689: A case — escalation or conflict — with everything each level said.</summary>
|
|
public sealed record CaseDto(
|
|
string Id,
|
|
string Kind,
|
|
string Status,
|
|
string Subject,
|
|
string OpenedBy,
|
|
DateTime OpenedAt,
|
|
DateTime DeadlineUtc,
|
|
DateTime? HumanCalledAt,
|
|
// null: a human holds it.
|
|
string? Holder,
|
|
string HolderTaskId,
|
|
int Level,
|
|
string OriginTaskId,
|
|
string OriginRunId,
|
|
IReadOnlyList<string> Parties,
|
|
IReadOnlyList<string> Informed,
|
|
IReadOnlyList<string> WaitingFor,
|
|
IReadOnlyList<CaseEntryDto> Trail,
|
|
string? DecisionId);
|
|
|
|
public sealed record CaseEntryDto(DateTime At, string Author, string Kind, string Text, string? RunId);
|
|
|
|
public sealed record DecisionDto(
|
|
string Id,
|
|
string Subject,
|
|
string Question,
|
|
string Answer,
|
|
string Reasoning,
|
|
string DecidedBy,
|
|
DateTime DecidedAt,
|
|
string? ScopeUnitId,
|
|
// "Purchasing / Team A"; null: binds the whole instance.
|
|
string? ScopePath,
|
|
string CaseId,
|
|
string? RunId);
|
|
|
|
public sealed record CaseDecisionInputDto(string? Answer, string? Reasoning);
|
|
|
|
public sealed record CaseStatementInputDto(string? AgentId, string? Question);
|