diff options
Diffstat (limited to 'content/item.go')
-rw-r--r-- | content/item.go | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/content/item.go b/content/item.go index f4a5489..0077dc6 100644 --- a/content/item.go +++ b/content/item.go @@ -18,7 +18,28 @@ func (i Item) Touch() int64 { return i.Updated } -// ContentID partially implements the Sortable interface -func (i Item) ContentID() int { +// ItemID partially implements the Sortable interface +func (i Item) ItemID() int { return i.ID } + +// SetSlug sets the item's slug for its URL +func (i *Item) SetSlug(slug string) { + i.Slug = slug +} + +// Sluggable makes a struct locatable by URL with it's own path +// As an Item implementing Sluggable, slugs may overlap. If this is an issue, +// make your content struct (or one which imbeds Item) implement Sluggable +// and it will override the slug created by Item's SetSlug with your struct's +type Sluggable interface { + SetSlug(string) +} + +// Identifiable enables a struct to have its ID set. Typically this is done +// to set an ID to -1 indicating it is new for DB inserts, since by default +// a newly initialized struct would have an ID of 0, the int zero-value, and +// BoltDB's starting key per bucket is 0, thus overwriting the first record. +type Identifiable interface { + SetContentID(int) +} |