Soft-Delete: Beiträge als [deleted] erhalten statt löschen

- entry.deleted; entrySelect LEFT JOIN + COALESCE(username)
- POST /entry/{pid}/delete: deleted=1, Inhalt/Bild/Autor geleert, Zeile bleibt
- Konto-Löschung soft-deletet die eigenen Beiträge (statt hartem DELETE),
  damit fremde Antworten nicht verwaisen
- Frontend: [deleted]-Platzhalter im Feed, Löschen-Button auf Focus-Seite
- notes/migrations.md: ALTER TABLE deleted

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-03 13:21:42 +02:00
parent ba085eff4e
commit cb3da3bb24
8 changed files with 164 additions and 17 deletions
+1
View File
@@ -50,6 +50,7 @@ func routes() http.Handler {
r.Use(requireAuth)
r.Post("/entry/create", handleCreateEntry)
r.Post("/entry/{pid}/vote", handleVote)
r.Post("/entry/{pid}/delete", handleDeleteEntry)
r.Get("/user/info", handleUserInfo)
r.Post("/user/rename", handleUserRename)
r.Post("/user/delete", handleUserDelete)