package storage import "time" type Event struct { ID string `json:"id" bson:"_id"` Namespace string `json:"namespace"` Owners []string `json:"owners"` RestrictedTo []string `json:"restricted_to"` Type string `json:"type"` Name string `json:"name"` Description string `json:"description"` Startdate time.Time `json:"startdate"` Enddate time.Time `json:"enddate"` Starttime string `json:"starttime"` Endtime string `json:"endtime"` Allday bool `json:"allday"` MaxSubscribers int64 `json:"max_subscribers"` Subscriptions []Subscription `json:"subscriptions" bson:"subscriptions,omitempty"` DeletedSubscription []Subscription `json:"deletedsubscriptions" bson:"deletedsubscriptions,omitempty"` Data map[string]any `json:"data"` Deleted bool `json:"deleted"` } type Subscription struct { ID string `json:"id" bson:"_id"` EventID string `json:"event_id"` Subscriber string `json:"subscriber"` Tags []string `json:"tags"` CreatedAt time.Time `json:"created_at,omitempty"` Data map[string]any `json:"data"` } func (e Event) RemainingSubscriptions() int { if e.MaxSubscribers == 0 { return 999 } return int(e.MaxSubscribers) - len(e.Subscriptions) }