niki/entity/admin_status.go

43 lines
931 B
Go

package entity
type AdminStatus uint
const (
AdminActiveStatus AdminStatus = iota + 1
AdminInactiveStatus
)
var AdminStatusStrings = map[AdminStatus]string{
AdminActiveStatus: "active",
AdminInactiveStatus: "inactive",
}
func (s AdminStatus) String() string {
return AdminStatusStrings[s]
}
func (s AdminStatus) IsValid() bool {
return s > 0 && int(s) <= len(AdminStatusStrings)
}
// AllAdminStatus returns a slice containing all string values of AdminStatus.
func AllAdminStatus() []string {
statusStrings := make([]string, len(AdminStatusStrings))
for status, str := range AdminStatusStrings {
statusStrings[int(status)-1] = str
}
return statusStrings
}
// MapToAdminStatus converts a string to the corresponding AdminStatus value.
func MapToAdminStatus(statusStr string) AdminStatus {
for status, str := range AdminStatusStrings {
if str == statusStr {
return status
}
}
return AdminStatus(0)
}