From 0c5a0a99ec86182540d73751249d2a1f3544de71 Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 8 Jun 2026 15:11:06 +0200 Subject: [PATCH] feat(time-tracking): dispatch time-entry events --- pkg/models/events.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pkg/models/events.go b/pkg/models/events.go index 937524a1a..fca768388 100644 --- a/pkg/models/events.go +++ b/pkg/models/events.go @@ -362,3 +362,36 @@ type WebhookDeliveryEvent struct { func (w *WebhookDeliveryEvent) Name() string { return "webhook.delivery" } + +// TimeEntryCreatedEvent represents a time entry being created +type TimeEntryCreatedEvent struct { + TimeEntry *TimeEntry `json:"time_entry"` + Doer *user.User `json:"doer"` +} + +// Name defines the name for TimeEntryCreatedEvent +func (e *TimeEntryCreatedEvent) Name() string { + return "time-entry.created" +} + +// TimeEntryUpdatedEvent represents a time entry being updated (including a timer being stopped) +type TimeEntryUpdatedEvent struct { + TimeEntry *TimeEntry `json:"time_entry"` + Doer *user.User `json:"doer"` +} + +// Name defines the name for TimeEntryUpdatedEvent +func (e *TimeEntryUpdatedEvent) Name() string { + return "time-entry.updated" +} + +// TimeEntryDeletedEvent represents a time entry being deleted +type TimeEntryDeletedEvent struct { + TimeEntry *TimeEntry `json:"time_entry"` + Doer *user.User `json:"doer"` +} + +// Name defines the name for TimeEntryDeletedEvent +func (e *TimeEntryDeletedEvent) Name() string { + return "time-entry.deleted" +}