[TB_03, TB_04, TB_05, TB_06] Like- und Kommentarfunktionen für Events
TB_03 Als <user> möchte ich alle Kommentare eines events sehen
TB_04 Als <user> möchte ich ein Kommentar für ein event schreiben, wenn er eingeloggt ist
TB_05 Als <user> möchte ich ein event liken
TB_06 Als <user> möchte ich einen Kommentar zu einem event liken
Bei der Implementierung der Like- und Kommentarfunktionen kannst du auf Tymos Vorarbeiten im Frage-Antwort-Modul (de.thm.kim.tc.app.faq
) zurückgreifen. Die Klassen Question
und Answer
in seinem Modul entsprechen fast 1:1 der Beziehung zwischen Event
und einer zukünftigen Kommentar-Klasse. Da nur Events kommentiert werden können reicht ein einziges Entity für die Kommentare aus.
Für die Likes wirst du zwei Klassen benötigen, eine zum Liken von Events und eine für Likes auf Kommentare. In einer besseren Welt könnte man das elegant und polymorph lösen, der Einfachheit halber würde ich jedoch stumpf zwei Entitys (und zwei Tabellen) anlegen. Übergangsweise ist es wahrscheinlich auch am einfachsten, wenn du einfach einen zusätzlichen Service ThinkBigLikeService
erstellst, der sich um die Likes in deinem Modul kümmert. Wenn ich Zeit und Muße habe, bau ich die Irgendwann© mal zusammen. Vom Aufbau her kannst du Tymos LikeService
aber nahezu vollständig übernehmen, angepasst an Event
und Kommentare natürlich.
Alles in Tymos Modul, was mit Badges zu tun hat kannst du erstmal ignorieren, die Views (QuestionView[Id]
) und Kategorien (QuestionCategory
) ebenso.
Ich würde erstmal mit den Kommentaren zu den Events anfangen (inkl. Zähler für die Anzahl der kommentare zu jedem Event) und danach die Like-Funktionalität ergänzen.