package model import ( "strings" "time" "github.com/rs/zerolog" ) type Conversation struct { Date time.Time `json:"date"` Participants []string `json:"participantDisplayNames"` DisplayName *string `json:"displayName"` // Optional UnreadCount int `json:"unreadCount"` LastMessagePreview string `json:"lastMessagePreview"` Guid string `json:"guid"` } func (c *Conversation) GetDisplayName() string { if c.DisplayName == nil { return strings.Join(c.Participants, ",") } return *c.DisplayName } func (c Conversation) MarshalZerologObject(e *zerolog.Event) { e.Str("guid", c.Guid) e.Time("date", c.Date) e.Int("unreadCount", c.UnreadCount) e.Str("lastMessagePreview", c.LastMessagePreview) e.Strs("participants", c.Participants) if c.DisplayName != nil { e.Str("displayName", *c.DisplayName) } }