spark-server/internal/module/friend/entity/request.go
2026-09-18 14:50:41 +08:00

53 lines
1.1 KiB
Go

package entity
import "time"
const (
RequestPending RequestStatus = 1
RequestAccepted RequestStatus = 2
RequestRejected RequestStatus = 3
)
// RequestStatus is persisted as friend_requests.status and returned as apply `status`.
type RequestStatus int
func (s RequestStatus) Valid() bool {
return s == RequestPending || s == RequestAccepted || s == RequestRejected
}
const (
SourceUnknown Source = 0
SourceQRCode Source = 1
SourceEmail Source = 2
SourceSparkID Source = 3
)
// Source is friend add origin on the request and the directed edge.
type Source int
func (s Source) Valid() bool {
return s == SourceUnknown || s == SourceQRCode || s == SourceEmail || s == SourceSparkID
}
const (
ReasonMax = 128
RemarkMax = 64
)
// Request is one from→to application. Repeats update this row; they do not insert another.
type Request struct {
ID int64
FromUser int64
ToUser int64
Source Source
Reason string
Remark string
Status RequestStatus
CreatedAt time.Time
UpdatedAt time.Time
}
func ValidSource(src int) bool {
return Source(src).Valid() && Source(src) != SourceUnknown
}