44 lines
1.9 KiB
Go
44 lines
1.9 KiB
Go
package models
|
|
|
|
type Channel struct {
|
|
ChannelID ChannelID `db:"channel_id" json:"channel_id"`
|
|
OwnerUserID UserID `db:"owner_user_id" json:"owner_user_id"`
|
|
InternalName string `db:"internal_name" json:"internal_name"` // = InternalName, used for sending, normalized, cannot be changed
|
|
DisplayName string `db:"display_name" json:"display_name"` // = DisplayName, used for display purposes, can be changed, initially equals InternalName
|
|
DescriptionName *string `db:"description_name" json:"description_name"` // = DescriptionName, (optional), longer description text, initally nil
|
|
SubscribeKey string `db:"subscribe_key" json:"subscribe_key" jsonfilter:"INCLUDE_KEY"` // can be nil, depending on endpoint
|
|
TimestampCreated SCNTime `db:"timestamp_created" json:"timestamp_created"`
|
|
TimestampLastSent *SCNTime `db:"timestamp_lastsent" json:"timestamp_lastsent"`
|
|
MessagesSent int `db:"messages_sent" json:"messages_sent"`
|
|
}
|
|
|
|
type ChannelWithSubscription struct {
|
|
Channel
|
|
Subscription *Subscription `db:"sub" json:"subscription"`
|
|
}
|
|
|
|
type ChannelPreview struct {
|
|
ChannelID ChannelID `json:"channel_id"`
|
|
OwnerUserID UserID `json:"owner_user_id"`
|
|
InternalName string `json:"internal_name"`
|
|
DisplayName string `json:"display_name"`
|
|
DescriptionName *string `json:"description_name"`
|
|
}
|
|
|
|
func (c Channel) WithSubscription(sub *Subscription) ChannelWithSubscription {
|
|
return ChannelWithSubscription{
|
|
Channel: c,
|
|
Subscription: sub,
|
|
}
|
|
}
|
|
|
|
func (c Channel) Preview() ChannelPreview {
|
|
return ChannelPreview{
|
|
ChannelID: c.ChannelID,
|
|
OwnerUserID: c.OwnerUserID,
|
|
InternalName: c.InternalName,
|
|
DisplayName: c.DisplayName,
|
|
DescriptionName: c.DescriptionName,
|
|
}
|
|
}
|