84 lines
1.5 KiB
Go
84 lines
1.5 KiB
Go
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
|
|
}
|