= Fortschritt Tag 4 == Datenbankschema Also wir haben wieder leichte Veränderungen am Datenbankmodell vorgenommen. Wir werden Eventsourcing als Persistenzmodell Verwenden. Die Datenbank besteht nun aus den Spalten: `event_id` `group_id` `user_id` und `eventpayload`. Die Spalte `eventpayload` wird im JSON-Format representiert und beinhaltet alle Infos zu veränderungen. Ganz vorne steht die Action die stattfand, welche wir in 7 mögliche Actions unterteilt haben: - `DeleteGroup` - `CreateGroup` - `AddUser` - `DeleteUser` - `UpdateRolle` - `UpdateGroupTitle` - `UpdateGroupDescription` == Gruppenservice/Events Wir verwenden nun einen Datentyp `Event` um die verschiedenen Events zu handleln. Es wird eine Eventliste als Parameter an eine überladene Methode in die `Gruppe` Klasse übergeben. Vom Datentyp Event erben die Verschiedenen Events die wir in der DB haben und haben einen entsprechenden Konstruktor: public class CreateGroupEvent extends Event { String titel; String beschreibung; public CreateGroupEvent(long id, long gruppe_id, String user_id, String titel, String beschreibung) { super(id, gruppe_id, user_id); this.titel = titel; this.beschreibung = beschreibung; } } == Tests Wir haben Tests zu den `applyEvent()` Methoden geschrieben aber müssen noch weitere Logik testen.