Rechtsklick auf eine Maus im Stammbaum öffnet ein Kontextmenü mit „ID kopieren" (Clipboard + Toast) und „Fehler melden". Zusätzlich „Fehler melden"-Buttons in der Rennmausakte und der Wurf-Ansicht. Der Dialog erfasst eine Beschreibung und sendet sie samt Debug-Kontext (Ansicht, Tier-/Wurf-ID + Name, URL, Zeitstempel, User-Agent) an POST /feedback; gespeichert in einer neuen Feedback-Tabelle. Backend: Feedback-Entity (lose nullable GerbilId/LitterId ohne FK), Endpoints POST/GET /feedback, EF-Migration AddFeedback. Die Tabelle wird vom Import-Ingest NICHT geleert — Feedback überlebt Re-Ingests (Test deckt das ab). Tests: FeedbackEndpointTests (persistiert, 400 bei leer, übersteht Ingest-Wipe); e2e feedback.spec.ts. tsc/eslint/vitest(129)/playwright(6)/dotnet(212) grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
26 lines
721 B
C#
26 lines
721 B
C#
namespace GerbilManagerWebAPI.Dtos
|
|
{
|
|
/// <summary>FEEDBACK: payload for POST /feedback (the "Fehler melden" dialog).</summary>
|
|
public record FeedbackInput(
|
|
string Message,
|
|
string Context,
|
|
Guid? GerbilId,
|
|
Guid? LitterId,
|
|
string? EntityName,
|
|
string? Url,
|
|
DateTimeOffset? ClientTimestamp);
|
|
|
|
/// <summary>FEEDBACK: response DTO for a stored report.</summary>
|
|
public record FeedbackDto(
|
|
Guid Id,
|
|
string Message,
|
|
string Context,
|
|
Guid? GerbilId,
|
|
Guid? LitterId,
|
|
string? EntityName,
|
|
string? Url,
|
|
DateTimeOffset? ClientTimestamp,
|
|
string? UserAgent,
|
|
DateTimeOffset CreatedAt);
|
|
}
|