model

package
v0.3.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2016 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventUserImport    string = "user_import"
	EventAssetImport   string = "asset_import"
	EventActionImport  string = "action_import"
	EventCommentImport string = "comment_import"
	EventNoteImport    string = "note_import"

	EventUserAddUpdate    string = "user_add_update"
	EventAssetAddUpdate   string = "asset_add_update"
	EventActionAddUpdate  string = "action_add_update"
	EventCommentAddUpdate string = "comment_add_update"
	EventNoteAddUpdate    string = "note_add_update"
	EventSearchAddUpdate  string = "search_add_update"
	EventAuthorAddUpdate  string = "author_add_update"
	EventSectionAddUpdate string = "section_add_update"

	EventTagAdded   string = "tag_added"
	EventTagRemoved string = "tag_removed"
)

Various Events

View Source
const (

	//Various Stats (counts)
	StatsLikes    string = "likes"
	StatsFlags    string = "flags"
	StatsComments string = "comments"

	//Various Collections
	Users          string = "users"
	UserStatistics string = "user_statistics"
	Assets         string = "assets"
	Actions        string = "actions"
	Comments       string = "comments"
	Tags           string = "tags"
	Authors        string = "authors"
	Sections       string = "sections"
	TagTargets     string = "tag_targets"
	CayUserActions string = "cay_user_actions"
	Searches       string = "searches"
	SrchHistory    string = "search_history"

	// Ask collections
	Forms           string = "forms"
	FormSubmissions string = "form_submissions"
	FormGalleries   string = "form_galleries"
)

Various Constants

Variables

View Source
var Indicies = []Index{

	{
		Actions,
		mgo.Index{
			Key: []string{"source.id"},
		},
	},
	{
		Actions, mgo.Index{
			Key: []string{"user_id", "target_id", "target", "type"},
		},
	},

	{
		Assets, mgo.Index{
			Key: []string{"source.id"},
		},
	},
	{
		Assets, mgo.Index{
			Key: []string{"url"},
		},
	},

	{
		Comments, mgo.Index{
			Key: []string{"source.id"},
		},
	},
	{
		Comments, mgo.Index{
			Key: []string{"user_id"},
		},
	},
	{
		Comments, mgo.Index{
			Key: []string{"source.parent_id"},
		},
	},

	{
		FormSubmissions, mgo.Index{
			Key:      []string{"form_id"},
			Unique:   false,
			DropDups: false,
		},
	},

	{
		Tags, mgo.Index{
			Key: []string{"name"},
		},
	},

	{
		TagTargets, mgo.Index{
			Key: []string{"target_id", "name", "target"},
		},
	},

	{
		Users, mgo.Index{
			Key: []string{"source.id"},
		},
	},

	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.all.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.all.replied_count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.all.replied_ratio"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.all.reply_count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.all.reply_ratio"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.all.word_count_average"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.ModeratorDeleted.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.ratios.ModeratorDeleted"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.ModeratorApproved.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.ratios.ModeratorApproved"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.CommunityFlagged.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.comments.all.ratios.Communityflagged"},
		},
	},

	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.actions.received.likes.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.actions.performed.likes.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.actions.received.flags.count"},
		},
	},
	{
		UserStatistics, mgo.Index{
			Key: []string{"statistics.actions.performed.flags.count"},
		},
	},
}

Indicies defines all the indicies for Coral mongo database.

Functions

func ObjectTypeInstance

func ObjectTypeInstance(objectType string) interface{}

ObjectTypeInstance is a factory method for known valid types. Any other input value will produce an insance of `map[string]interface{}`.

func ObjectTypes

func ObjectTypes() []string

func ValidateObjectType

func ValidateObjectType(objectType string) error

Types

type Action

type Action struct {
	ID       bson.ObjectId `json:"id" bson:"_id"`
	Type     string        `json:"type" bson:"type" validate:"required"`
	UserID   bson.ObjectId `json:"user_id" bson:"user_id" validate:"required"`
	Target   string        `json:"target" bson:"target" validate:"required"`
	TargetID bson.ObjectId `json:"target_id" bson:"target_id" validate:"required"`
	Date     time.Time     `json:"date" bson:"date" validate:"required"`
	Value    string        `json:"value,omitempty" bson:"value,omitempty"`
	Metadata bson.M        `json:"metadata,omitempty" bson:"metadata,omitempty"`
	Source   *ImportSource `json:"source,omitempty" bson:"source,omitempty"`
}

Action denotes an action taken by an actor (User) on someone/something. TargetType and TargetID may be zero value if data is a sub-document of the Target UserID may be zero value if the data is a subdocument of the actor

func (Action) Id added in v0.3.4

func (object Action) Id() string

Id returns the ID for this Model

func (Action) ImportSource added in v0.3.4

func (object Action) ImportSource() *ImportSource

ImportSource returns the Source model

func (Action) Validate added in v0.3.4

func (object Action) Validate() error

Validate validates this Model

type Asset

type Asset struct {
	ID            bson.ObjectId `json:"id" bson:"_id"`
	URL           string        `json:"url" bson:"url" validate:"required"`
	Headline      string        `json:"headline,omitempty" bson:"headline,omitempty"`
	Tags          []string      `json:"tags,omitempty" bson:"tags,omitempty"`
	Authors       []Author      `json:"authors,omitempty" bson:"authors,omitempty"`
	Section       string        `json:"section,omitempty" bson:"section,omitempty"`
	Subsection    string        `json:"subsection,omitempty" bson:"subsection,omitempty"`
	Status        string        `json:"status,omitempty" bson:"status,omitempty"`
	DateCreated   time.Time     `json:"date_created,omitempty" bson:"date_created,omitempty"`
	DateUpdated   time.Time     `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
	DatePublished time.Time     `json:"date_published,omitempty" bson:"date_published,omitempty"`
	Stats         bson.M        `json:"stats,omitempty" bson:"stats,omitempty"`
	Metadata      bson.M        `json:"metadata,omitempty" bson:"metadata,omitempty"`
	Source        *ImportSource `json:"source,omitempty" bson:"source,omitempty"`
}

Asset denotes an asset in the system e.g. an article or a blog etc.

func (Asset) Id added in v0.3.4

func (object Asset) Id() string

Id returns the ID for this Model

func (Asset) ImportSource added in v0.3.4

func (object Asset) ImportSource() *ImportSource

ImportSource returns the Source model

func (Asset) Validate

func (object Asset) Validate() error

Validate performs validation on an Asset value before it is processed.

type Author

type Author struct {
	ID       string `json:"id" bson:"_id"`
	Name     string `json:"name" bson:"name" validate:"required"`
	URL      string `json:"url,omitempty" bson:"url,omitempty"`
	Twitter  string `json:"twitter,omitempty" bson:"twitter,omitempty"`
	Facebook string `json:"facebook,omitempty" bson:"facebook,omitempty"`
	Stats    bson.M `json:"stats,omitempty" bson:"stats,omitempty"`
	Metadata bson.M `json:"metadata,omitempty" bson:"metadata,omitempty"`
}

Author denotes a writer who curated an Asset (or story).

func (Author) Id added in v0.3.4

func (object Author) Id() string

Id returns the ID for this Model

func (Author) ImportSource added in v0.3.4

func (object Author) ImportSource() *ImportSource

ImportSource returns the Source model

func (Author) Validate added in v0.3.4

func (object Author) Validate() error

Validate validates this Model

type CayUserAction

type CayUserAction struct {
	ID      bson.ObjectId `json:"id" bson:"_id"`
	Date    time.Time     `json:"date" bson:"date" validate:"required"`
	Data    bson.M        `json:"data" bson:"data" validate:"required"`
	Release string        `json:"release" bson:"release" validate:"required"`
}

CayUserAction denotes a user action from the user using the system.

type Comment

type Comment struct {
	ID          bson.ObjectId   `json:"id" bson:"_id"`
	UserID      bson.ObjectId   `json:"user_id" bson:"user_id"`
	AssetID     bson.ObjectId   `json:"asset_id" bson:"asset_id"`
	RootID      bson.ObjectId   `json:"root_id,omitempty" bson:"root_id,omitempty"`
	Parents     []bson.ObjectId `json:"parents,omitempty" bson:"parents,omitempty"`
	Children    []bson.ObjectId `json:"children,omitempty" bson:"children,omitempty"`
	Body        string          `json:"body" bson:"body" validate:"required"`
	Status      string          `json:"status" bson:"status"`
	DateCreated time.Time       `json:"date_created" bson:"date_created"`
	DateUpdated time.Time       `json:"date_updated" bson:"date_updated"`
	Actions     []Action        `json:"actions,omitempty" bson:"actions,omitempty"`
	Notes       []Note          `json:"notes,omitempty" bson:"notes,omitempty"`
	Tags        []string        `json:"tags,omitempty" bson:"tags,omitempty"`
	Roles       []string        `json:"roles,omitempty" bson:"roles,omitempty"`
	Stats       bson.M          `json:"stats,omitempty" bson:"stats,omitempty"`
	Metadata    bson.M          `json:"metadata,omitempty" bson:"metadata,omitempty"`
	Source      *ImportSource   `json:"source,omitempty" bson:"source,omitempty"`
}

Comment denotes a comment by a user in the system.

func (Comment) Id added in v0.3.4

func (object Comment) Id() string

Id returns the ID for this Model

func (Comment) ImportSource added in v0.3.4

func (object Comment) ImportSource() *ImportSource

ImportSource returns the Source model

func (Comment) Validate

func (object Comment) Validate() error

Validate validates this Model

type CommentHistory added in v0.3.4

type CommentHistory struct {
	ID      bson.ObjectId `json:"id" bson:"_id"`
	UserID  bson.ObjectId `json:"user_id" bson:"user_id" validate:"required"`
	Comment Comment       `json:"comment" bson:"comment" validate:"required"`
	Event   string        `json:"event" bson:"event" validate:"required"`
	Date    time.Time     `json:"date" bson:"date" validate:"required"`
}

CommentHistory encapsulates a snapshot of comment when it was last updated.

type Content added in v0.3.4

type Content struct {
	MimeType string `json:"type" bson:"type" validate:"required"`
	Body     string `json:"body" bson:"body" validate:"required"`
}

Content encapsulates content-type and its data.

type Dimension added in v0.3.4

type Dimension struct {
	Name         string   `json:"name" bson:"name" validate:"required"`
	Constituents []string `json:"constituents" bson:"constituents"`
}

Dimension will hold all the variables on which aggregations/statistics can be get for the specific type

func (Dimension) Validate added in v0.3.4

func (object Dimension) Validate() error

Validate validates this Model

type Event added in v0.3.4

type Event struct {
	Name    string      `json:"name" bson:"name"`
	Payload interface{} `json:"payload" bson:"payload"`
}

Event denotes an event in Pillar

type Form added in v0.3.4

type Form struct {
	ID             bson.ObjectId `json:"id" bson:"_id"`
	Status         string        `json:"status" bson:"status"`
	Theme          interface{}   `json:"theme" bson:"theme"`
	Settings       interface{}   `json:"settings" bson:"settings"`
	Header         interface{}   `json:"header" bson:"header"`
	Footer         interface{}   `json:"footer" bson:"footer"`
	FinishedScreen interface{}   `json:"finishedScreen" bson:"finishedScreen"`
	Steps          []FormStep    `json:"steps" bson:"steps"`
	Stats          FormStats     `json:"stats" bson:"stats"`
	CreatedBy      interface{}   `json:"created_by" bson:"created_by"` // Todo, decide how to represent ownership here
	UpdatedBy      interface{}   `json:"updated_by" bson:"updated_by"` // Todo, decide how to represent ownership here
	DeletedBy      interface{}   `json:"deleted_by" bson:"deleted_by"` // Todo, decide how to represent ownership here
	DateCreated    time.Time     `json:"date_created,omitempty" bson:"date_created,omitempty"`
	DateUpdated    time.Time     `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
	DateDeleted    time.Time     `json:"date_deleted,omitempty" bson:"date_deleted,omitempty"`
}

func (Form) Id added in v0.3.4

func (object Form) Id() string

Id returns the ID for this Model

func (Form) ImportSource added in v0.3.4

func (object Form) ImportSource() *ImportSource

ImportSource returns the Source model

func (Form) Validate added in v0.3.4

func (object Form) Validate() error

type FormGallery added in v0.3.4

type FormGallery struct {
	ID          bson.ObjectId          `json:"id" bson:"_id"`
	FormId      bson.ObjectId          `json:"form_id" bson:"form_id"`
	Headline    string                 `json:"headline" bson:"headline"`
	Description string                 `json:"description" bson:"description"`
	Config      map[string]interface{} `json:"config" bson:"config"`
	Answers     []FormGalleryAnswer    `json:"answers" bson:"answers"`
	DateCreated time.Time              `json:"date_created,omitempty" bson:"date_created,omitempty"`
	DateUpdated time.Time              `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
}

func (FormGallery) GetType added in v0.3.4

func (o FormGallery) GetType() string

I am, form_gallery

func (FormGallery) Id added in v0.3.4

func (object FormGallery) Id() string

Id returns the ID for this Model

func (FormGallery) ImportSource added in v0.3.4

func (object FormGallery) ImportSource() *ImportSource

ImportSource returns the Source model

func (FormGallery) IsRecordableEvent added in v0.3.4

func (o FormGallery) IsRecordableEvent(e string) bool

Record all Historical Events for FormGalleries

func (FormGallery) Validate added in v0.3.4

func (object FormGallery) Validate() error

type FormGalleryAnswer added in v0.3.4

type FormGalleryAnswer struct {
	SubmissionId    bson.ObjectId          `json:"submission_id" bson:"submission_id"`
	AnswerId        string                 `json:"answer_id" bson:"answer_id"`
	Answer          FormSubmissionAnswer   `json:"answer,omitempty" bson:"answer,omitempty"`                     // not saved to db, hydrated when reading only!
	IdentityAnswers []FormSubmissionAnswer `json:"identity_answers,omitempty" bson:"identity_answers,omitempty"` // not saved to db, hydrated when reading only!
}

type FormStats added in v0.3.4

type FormStats struct {
	Responses int `json:"responses" bson:"responses"`
}

type FormStep added in v0.3.4

type FormStep struct {
	ID      string       `json:"id" bson:"_id"`
	Name    string       `json:"name" bson:"name"`
	Widgets []FormWidget `json:"widgets" bson:"widgets"`
}

type FormSubmission added in v0.3.4

type FormSubmission struct {
	ID             bson.ObjectId          `json:"id" bson:"_id"`
	FormId         bson.ObjectId          `json:"form_id" bson:"form_id"`
	Number         int                    `json:"number" bson:"number"`
	Status         string                 `json:"status" bson:"status"`
	Answers        []FormSubmissionAnswer `json:"replies" bson:"replies"`
	Flags          []string               `json:"flags" bson:"flags"` // simple, flexible string flagging
	Header         interface{}            `json:"header" bson:"header"`
	Footer         interface{}            `json:"footer" bson:"footer"`
	FinishedScreen interface{}            `json:"finishedScreen" bson:"finishedScreen"`
	CreatedBy      interface{}            `json:"created_by" bson:"created_by"` // Todo, decide how to represent ownership here
	UpdatedBy      interface{}            `json:"updated_by" bson:"updated_by"` // Todo, decide how to represent ownership here
	DateCreated    time.Time              `json:"date_created,omitempty" bson:"date_created,omitempty"`
	DateUpdated    time.Time              `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
}

func (FormSubmission) Id added in v0.3.4

func (object FormSubmission) Id() string

Id returns the ID for this Model

func (FormSubmission) ImportSource added in v0.3.4

func (object FormSubmission) ImportSource() *ImportSource

ImportSource returns the Source model

func (FormSubmission) Validate added in v0.3.4

func (object FormSubmission) Validate() error

type FormSubmissionAnswer added in v0.3.4

type FormSubmissionAnswer struct {
	WidgetId     string      `json:"widget_id" bson:"widget_id"`
	Identity     bool        `json:"identity" bson:"identity"`
	Answer       interface{} `json:"answer" bson:"answer"`
	EditedAnswer interface{} `json:"edited" bson:"edited"`
	Question     interface{} `json:"question" bson:"question"`
	Props        interface{} `json:"props" bson:"props"`
}

here's what a form submission is

type FormSubmissionAnswerInput added in v0.3.4

type FormSubmissionAnswerInput struct {
	WidgetId string      `json:"widget_id"`
	Answer   interface{} `json:"answer"`
}

this is what we expect for input for a form submission

type FormSubmissionEditInput added in v0.3.4

type FormSubmissionEditInput struct {
	EditedAnswer interface{} `json:"edited"`
}

type FormSubmissionInput added in v0.3.4

type FormSubmissionInput struct {
	FormId  string                      `jsont:"form_id"`
	Status  string                      `json:"status" bson:"status"`
	Answers []FormSubmissionAnswerInput `json:"replies"`
}

func (FormSubmissionInput) Id added in v0.3.4

func (object FormSubmissionInput) Id() string

Id returns the ID for this Model

func (FormSubmissionInput) ImportSource added in v0.3.4

func (object FormSubmissionInput) ImportSource() *ImportSource

ImportSource returns the Source model

func (FormSubmissionInput) Validate added in v0.3.4

func (object FormSubmissionInput) Validate() error

type FormWidget added in v0.3.4

type FormWidget struct {
	ID          string      `json:"id" bson:"_id"`
	Type        string      `json:"type" bson:"type"`
	Identity    bool        `json:"identity" bson:"identity"`
	Component   string      `json:"component" bson:"component"`
	Title       string      `json:"title" bson:"title"`
	Description string      `json:"description" bson:"description"`
	Wrapper     interface{} `json:"wrapper" bson:"wrapper"`
	Props       interface{} `json:"props" bson:"props"`
}

type ImportSource

type ImportSource struct {
	ID       string `json:"id,omitempty" bson:"id,omitempty"`
	UserID   string `json:"user_id,omitempty" bson:"user_id,omitempty"`
	TargetID string `json:"target_id,omitempty" bson:"target_id,omitempty"`
	AssetID  string `json:"asset_id,omitempty" bson:"asset_id,omitempty"`
	ParentID string `json:"parent_id,omitempty" bson:"parent_id,omitempty"`
	User     *User  `json:"user,omitempty" bson:"user,omitempty"`
}

ImportSource encapsulates all original id from the source system this is a common struct used primarily for import purposes client is responsible for passing in valid/correct source data

type Index

type Index struct {
	Target string    `json:"target" bson:"target" validate:"required"`
	Index  mgo.Index `json:"index" bson:"index" validate:"required"`
}

Index denotes a request to add Index to various entities.

type Metadata

type Metadata struct {
	Target   string        `json:"target" bson:"target" validate:"required"`
	TargetID bson.ObjectId `json:"target_id" bson:"target_id" validate:"required"`
	Metadata bson.M        `json:"metadata,omitempty" bson:"metadata,omitempty"`
	Source   ImportSource  `json:"source,omitempty" bson:"source,omitempty"`
}

Metadata denotes a request to add/update Metadata for an entity

type Model added in v0.3.4

type Model interface {
	Id() string
	Validate() error
	ImportSource() *ImportSource
}

type Note

type Note struct {
	UserID   bson.ObjectId `json:"user_id" bson:"user_id"`
	Body     string        `json:"body" bson:"body" validate:"required"`
	Date     time.Time     `json:"date" bson:"date" validate:"required"`
	TargetID bson.ObjectId `json:"target_id" bson:"target_id" validate:"required"`
	Target   string        `json:"target" bson:"target" validate:"required"`
	Source   ImportSource  `json:"source,omitempty" bson:"source,omitempty"`
}

Note denotes a note by a user in the system.

func (Note) Id added in v0.3.4

func (object Note) Id() string

Id returns the ID for this Model

func (Note) ImportSource added in v0.3.4

func (object Note) ImportSource() *ImportSource

ImportSource returns the Source model

func (Note) Validate added in v0.3.4

func (object Note) Validate() error

Validate validates this Model

type PayloadAction added in v0.3.4

type PayloadAction struct {
	Action  Action  `json:"action" bson:"action"`
	Actor   User    `json:"actor" bson:"actor"`
	User    User    `json:"user" bson:"user"`
	Comment Comment `json:"comment" bson:"comment"`
}

PayloadAction denotes an message to be used when an action is created/updated.

type PayloadComment added in v0.3.4

type PayloadComment struct {
	Comment Comment `json:"comment" bson:"comment"`
	Asset   Asset   `json:"asset" bson:"asset"`
	User    User    `json:"user" bson:"user"`
}

PayloadComment denotes a payload to be used when a comment is created/updated.

type PayloadTag added in v0.3.4

type PayloadTag struct {
	Tag  string `json:"tag" bson:"tag"`
	User User   `json:"user" bson:"user"`
}

PayloadTag denotes an message to be used when a tag is added/removed

type Search struct {
	ID          bson.ObjectId `json:"id" bson:"_id"`
	Name        string        `json:"name" bson:"name" validate:"required"`
	Description string        `json:"description,omitempty" bson:"description,omitempty"`
	Query       string        `json:"query" bson:"query"` // generated internally from ID
	//	QuerySet    interface{}   `json:"querySet" bson:"querySet"`
	Tag          string       `json:"tag" bson:"tag"`
	Filters      bson.M       `json:"filters,omitempty" bson:"filters,omitempty"`
	ExcludedTags []string     `json:"excluded_tags" bson:"excluded_tags"`
	Result       SearchResult `json:"result,omitempty" bson:"result,omitempty"`
	DateCreated  time.Time    `json:"date_created" bson:"date_created"`
	DateUpdated  time.Time    `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
	UserCreated  string       `json:"user_created,omitempty" bson:"user_created,omitempty"`
	UserUpdated  string       `json:"user_updated,omitempty" bson:"user_updated,omitempty"`
}

Search denotes a search bound by a query and tag.

func (Search) Id added in v0.3.4

func (object Search) Id() string

Id returns the ID for this Model

func (Search) ImportSource added in v0.3.4

func (object Search) ImportSource() *ImportSource

ImportSource returns the Source model

func (Search) Validate added in v0.3.4

func (object Search) Validate() error

Validate validates this Model

type SearchHistory added in v0.3.4

type SearchHistory struct {
	ID     bson.ObjectId `json:"id" bson:"_id"`
	Action string        `json:"action" bson:"action" validate:"required"`
	Date   time.Time     `json:"date" bson:"date" validate:"required"`
	Search Search        `json:"search" bson:"search" validate:"required"`
}

type SearchResult added in v0.3.4

type SearchResult struct {
	Count     int           `json:"count,omitempty" bson:"count,omitempty"`
	Histogram []interface{} `json:"histogram,omitempty" bson:"histogram,omitempty"`
	Users     []User        `json:"users,omitempty" bson:"users,omitempty"`
}

type Section

type Section struct {
	Name        string    `json:"name" bson:"_id" validate:"required"`
	Description string    `json:"description" bson:"description" validate:"required"`
	DateCreated time.Time `json:"date_created" bson:"date_created"`
	DateUpdated time.Time `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
	Stats       bson.M    `json:"stats,omitempty" bson:"stats,omitempty"`
	Metadata    bson.M    `json:"metadata,omitempty" bson:"metadata,omitempty"`
}

Section denotes a media section

func (Section) Id added in v0.3.4

func (object Section) Id() string

Id returns the ID for this Model

func (Section) ImportSource added in v0.3.4

func (object Section) ImportSource() *ImportSource

ImportSource returns the Source model

func (Section) Validate added in v0.3.4

func (object Section) Validate() error

Validate validates this Model

type Tag

type Tag struct {
	Name        string    `json:"name" bson:"_id" validate:"required"`
	OldName     string    `json:"old_name,omitempty" bson:"old_name,omitempty"`
	Description string    `json:"description" bson:"description" validate:"required"`
	DateCreated time.Time `json:"date_created" bson:"date_created"`
	DateUpdated time.Time `json:"date_updated,omitempty" bson:"date_updated,omitempty"`
}

Tag denotes a unique tag in the system

func (Tag) Id added in v0.3.4

func (object Tag) Id() string

Id returns the ID for this Model

func (Tag) ImportSource added in v0.3.4

func (object Tag) ImportSource() *ImportSource

ImportSource returns the Source model

func (Tag) Validate added in v0.3.4

func (object Tag) Validate() error

Validate validates this Model

type TagTarget

type TagTarget struct {
	ID          bson.ObjectId `json:"id" bson:"_id"`
	Target      string        `json:"target" bson:"target" validate:"required"`
	TargetID    bson.ObjectId `json:"target_id" bson:"target_id" validate:"required"`
	Name        string        `json:"name" bson:"name" validate:"required"`
	DateCreated time.Time     `json:"date_created" bson:"date_created"`
}

TagTarget denotes relationship between an entity and its tags

type Taxonomy

type Taxonomy struct {
	Name  string `json:"name" bson:"name"`
	Value string `json:"value" bson:"value"`
}

Taxonomy holds all name-value pairs.

type User

type User struct {
	ID          bson.ObjectId `json:"id" bson:"_id"`
	Name        string        `json:"name" bson:"name" validate:"required"`
	Avatar      string        `json:"avatar" bson:"avatar"`
	Status      string        `json:"status" bson:"status"`
	LastLogin   time.Time     `json:"last_login,omitempty" bson:"last_login,omitempty"`
	MemberSince time.Time     `json:"member_since,omitempty" bson:"member_since,omitempty"`
	Actions     []Action      `json:"actions,omitempty" bson:"actions,omitempty"`
	Notes       []Note        `json:"notes,omitempty" bson:"notes,omitempty"`
	Tags        []string      `json:"tags,omitempty" bson:"tags,omitempty"`
	Stats       bson.M        `json:"stats,omitempty" bson:"stats,omitempty"`
	Metadata    bson.M        `json:"metadata,omitempty" bson:"metadata,omitempty"`
	Source      *ImportSource `json:"source,omitempty" bson:"source,omitempty"`
}

User denotes a user in the system.

func (User) Id added in v0.3.4

func (object User) Id() string

Id returns the ID for this Model

func (User) ImportSource added in v0.3.4

func (object User) ImportSource() *ImportSource

ImportSource returns the Source model

func (User) Validate

func (object User) Validate() error

Validate validates this Model

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL