54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
|
package model
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
type InteractionContent string
|
||
|
|
||
|
// Interaction is a generic interface for all interactions with entries
|
||
|
// These interactions can be:
|
||
|
// - Webmention, Pingback, Trackback
|
||
|
// - Likes, Comments on third party sites
|
||
|
// - Comments on the site itself
|
||
|
type Interaction interface {
|
||
|
ID() string
|
||
|
EntryID() string
|
||
|
Content() InteractionContent
|
||
|
CreatedAt() time.Time
|
||
|
MetaData() interface{}
|
||
|
|
||
|
SetID(id string)
|
||
|
SetEntryID(entryID string)
|
||
|
SetCreatedAt(createdAt time.Time)
|
||
|
SetMetaData(metaData interface{})
|
||
|
}
|
||
|
|
||
|
type InteractionBase struct {
|
||
|
id string
|
||
|
entryID string
|
||
|
createdAt time.Time
|
||
|
}
|
||
|
|
||
|
func (i *InteractionBase) ID() string {
|
||
|
return i.id
|
||
|
}
|
||
|
|
||
|
func (i *InteractionBase) EntryID() string {
|
||
|
return i.entryID
|
||
|
}
|
||
|
|
||
|
func (i *InteractionBase) CreatedAt() time.Time {
|
||
|
return i.createdAt
|
||
|
}
|
||
|
|
||
|
func (i *InteractionBase) SetID(id string) {
|
||
|
i.id = id
|
||
|
}
|
||
|
|
||
|
func (i *InteractionBase) SetEntryID(entryID string) {
|
||
|
i.entryID = entryID
|
||
|
}
|
||
|
|
||
|
func (i *InteractionBase) SetCreatedAt(createdAt time.Time) {
|
||
|
i.createdAt = createdAt
|
||
|
}
|