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) }