package entity // Kind is square_posts.kind. type Kind int16 const ( KindText Kind = 1 KindImage Kind = 2 KindVideo Kind = 3 ) func (k Kind) Valid() bool { return k == KindText || k == KindImage || k == KindVideo } // Visibility matches moment_posts.visibility values. type Visibility int16 const ( VisibilityPublic Visibility = 0 VisibilityPrivate Visibility = 1 VisibilityInclude Visibility = 2 VisibilityExclude Visibility = 3 ) func (v Visibility) Valid() bool { return v >= VisibilityPublic && v <= VisibilityExclude } func (v Visibility) NeedsAudience() bool { return v == VisibilityInclude || v == VisibilityExclude } // AuditStatus is square_posts.audit_status. type AuditStatus int16 const ( AuditPending AuditStatus = 0 AuditApproved AuditStatus = 1 AuditRejected AuditStatus = 2 ) // Status is post/comment row status. type Status int16 const ( StatusNormal Status = 0 StatusDeleted Status = 1 ) // NoticeKind is square_notices.kind. type NoticeKind int16 const ( NoticeLike NoticeKind = 1 NoticeComment NoticeKind = 2 NoticeReply NoticeKind = 3 ) const ( MaxTextRunes = 1000 MaxImages = 9 MaxAudience = 200 MaxCommentRunes = 500 MaxVideoMS = 30_000 ListDefault = 20 ListMax = 50 Overfetch = 50 OverfetchRounds = 3 LikePreviewMax = 10 CommentPreviewMax = 20 MaxContentBytes = 16 << 10 ) func ClampLimit(limit int) int { if limit <= 0 { return ListDefault } if limit > ListMax { return ListMax } return limit }