package com.chatalytics.core.model.data;

import org.joda.time.DateTime;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

@Getter
@EqualsAndHashCode
@ToString
public class ChatAlyticsEvent {

    public ChatAlyticsEvent(DateTime eventTime, String type, Serializable event) {
        this.eventTime = eventTime;
        this.type = type;
        this.event = event;
        this.clazz = event.getClass();
    }

    private final DateTime eventTime;
    private final String type;
    private final Serializable event;

    @Setter // null out clazz when it leaves the service
    private Class<? extends Serializable> clazz;
}

@@ -46,66 +46,86 @@
 ort 
-org.joda.time.DateTime;%0A%0Aimport lombok.EqualsAndHashCod
+com.fasterxml.jackson.annotation.JsonIgnore;%0A%0Aimport org.joda.time.DateTim
 e;%0A
+%0A
 impo
@@ -134,22 +134,20 @@
  lombok.
-Getter
+Data
 ;%0Aimport
@@ -166,131 +166,148 @@
 er;%0A
-import lombok.ToString;%0A%0Aimport java.io.Serializable;%0A%0A@Getter%0A@EqualsAndHashCode%0A@ToString%0Apublic class ChatAlyticsE
+%0A@Data%0Apublic class ChatAlyticsEvent %7B%0A%0A    private final DateTime eventTime;%0A    private final String type;%0A    private final Object e
 vent
- %7B
+;
 %0A%0A  
@@ -365,28 +365,22 @@
 g type, 
-Serializable
+Object
  event) 
@@ -521,116 +521,8 @@
  %7D%0A%0A
-    private final DateTime eventTime;%0A    private final String type;%0A    private final Serializable event;%0A%0A
     
@@ -582,44 +582,39 @@
     
-private Class%3C? extends Serializable
+@JsonIgnore%0A    private Class%3C?
 %3E cl

Make ChatAlyticsEvent not depend on Serializable