go-common/app/job/main/videoup/model/archive/archive_result.go
2019-04-22 18:49:16 +08:00

57 lines
1.8 KiB
Go

package archive
// Result is archive model.
type Result struct {
Aid int64 `json:"aid"`
Mid int64 `json:"mid"`
TypeID int16 `json:"tid"`
Title string `json:"title"`
Author string `json:"author"`
Cover string `json:"cover"`
Tag string `json:"tag"`
Duration int64 `json:"duration"`
Copyright int8 `json:"copyright"`
Desc string `json:"desc"`
Round int8 `json:"round"`
Forward int64 `json:"forward"`
Attribute int32 `json:"attribute"`
HumanRank int `json:"humanrank"`
Access int16 `json:"access"`
State int8 `json:"state"`
Reason string `json:"reject_reason"`
PTime string `json:"ptime"`
CTime string `json:"ctime"`
MTime string `json:"mtime"`
Dynamic string `json:"dynamic"`
}
// IsNormal check archive is open.
func (a *Result) IsNormal() bool {
return a.State >= StateOpen || a.State == StateForbidFixed
}
// NotAllowUp check archive is or not allow update state.
func (a *Result) NotAllowUp() bool {
return a.State == StateForbidUpDelete || a.State == StateForbidLater || a.State == StateForbidLock || a.State == StateForbidPolice
}
// IsForbid check archive state forbid by admin or delete.
func (a *Result) IsForbid() bool {
return a.State == StateForbidUpDelete || a.State == StateForbidRecicle || a.State == StateForbidPolice || a.State == StateForbidLock || a.State == StateForbidLater || a.State == StateForbidXcodeFail
}
// AttrVal get attribute value.
func (a *Result) AttrVal(bit uint) int32 {
return (a.Attribute >> bit) & int32(1)
}
// AttrSet set attribute value.
func (a *Result) AttrSet(v int32, bit uint) {
a.Attribute = a.Attribute&(^(1 << bit)) | (v << bit)
}
// WithAttr set attribute value with a attr value.
func (a *Result) WithAttr(attr Attr) {
a.Attribute = a.Attribute | int32(attr)
}