package info import ( "gopkg.in/mgo.v2/bson" "time" ) // 只存笔记基本信息 // 内容不存放 type Note struct { NoteId bson.ObjectId `bson:"_id,omitempty"` // 必须要设置bson:"_id" 不然mgo不会认为是主键 UserId bson.ObjectId `bson:"UserId"` // 谁的 CreatedUserId bson.ObjectId `bson:"CreatedUserId,omitempty"` // 谁创建的(UserId != CreatedUserId, 是因为共享). 只是共享才有, 默认为空, 不存 必须要加omitempty NotebookId bson.ObjectId `bson:"NotebookId"` Title string `Title` // 标题 Desc string `Desc` // 描述, 非html Src string `Src,omitempty` // 来源, 2016/4/22 ImgSrc string `ImgSrc` // 图片, 第一张缩略图地址 Tags []string `Tags,omitempty` IsTrash bool `IsTrash` // 是否是trash, 默认是false IsBlog bool `IsBlog,omitempty` // 是否设置成了blog 2013/12/29 新加 UrlTitle string `UrlTitle,omitempty` // 博客的url标题, 为了更友好的url, 在UserId, UrlName下唯一 IsRecommend bool `IsRecommend,omitempty` // 是否为推荐博客 2014/9/24新加 IsTop bool `IsTop,omitempty` // blog是否置顶 HasSelfDefined bool `HasSelfDefined` // 是否已经自定义博客图片, desc, abstract // 2014/9/28 添加评论社交功能 ReadNum int `ReadNum,omitempty` // 阅读次数 2014/9/28 LikeNum int `LikeNum,omitempty` // 点赞次数 2014/9/28 CommentNum int `CommentNum,omitempty` // 评论次数 2014/9/28 IsMarkdown bool `IsMarkdown` // 是否是markdown笔记, 默认是false AttachNum int `AttachNum` // 2014/9/21, attachments num CreatedTime time.Time `CreatedTime` UpdatedTime time.Time `UpdatedTime` RecommendTime time.Time `RecommendTime,omitempty` // 推荐时间 PublicTime time.Time `PublicTime,omitempty` // 发表时间, 公开为博客则设置 UpdatedUserId bson.ObjectId `bson:"UpdatedUserId"` // 如果共享了, 并可写, 那么可能是其它他修改了 // 2015/1/15, 更新序号 Usn int `Usn` // UpdateSequenceNum IsDeleted bool `IsDeleted` // 删除位 } // 内容 type NoteContent struct { NoteId bson.ObjectId `bson:"_id,omitempty"` UserId bson.ObjectId `bson:"UserId"` IsBlog bool `IsBlog,omitempty` // 为了搜索博客 Content string `Content` Abstract string `Abstract` // 摘要, 有html标签, 比content短, 在博客展示需要, 不放在notes表中 CreatedTime time.Time `CreatedTime` UpdatedTime time.Time `UpdatedTime` UpdatedUserId bson.ObjectId `bson:"UpdatedUserId"` // 如果共享了, 并可写, 那么可能是其它他修改了 } // 基本信息和内容在一起 type NoteAndContent struct { Note NoteContent } // 历史记录 // 每一个历史记录对象 type EachHistory struct { UpdatedUserId bson.ObjectId `UpdatedUserId` UpdatedTime time.Time `UpdatedTime` Content string `Content` } type NoteContentHistory struct { NoteId bson.ObjectId `bson:"_id,omitempty"` UserId bson.ObjectId `bson:"UserId"` // 所属者 Histories []EachHistory `Histories` } // 为了NoteController接收参数 // 更新note或content // 肯定会传userId(谁的), NoteId // 会传Title, Content, Tags, 一种或几种 type NoteOrContent struct { NotebookId string NoteId string UserId string Title string Desc string Src string ImgSrc string Tags string Content string Abstract string IsNew bool IsMarkdown bool FromUserId string // 为共享而新建 IsBlog bool // 是否是blog, 更新note不需要修改, 添加note时才有可能用到, 此时需要判断notebook是否设为Blog } // 分开的 type NoteAndContentSep struct { NoteInfo Note NoteContentInfo NoteContent }