aboutsummaryrefslogtreecommitdiff
path: root/models/enums.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/enums.go')
-rw-r--r--models/enums.go120
1 files changed, 120 insertions, 0 deletions
diff --git a/models/enums.go b/models/enums.go
new file mode 100644
index 0000000..3334141
--- /dev/null
+++ b/models/enums.go
@@ -0,0 +1,120 @@
+package models
+
+type UserLevel int
+
+const (
+ UserLevelMember UserLevel = iota
+ UserLevelContributor
+ UserLevelJanitor
+ UserLevelModerator
+ UserLevelAdmin
+ UserLevelSuperAdmin
+)
+
+func (l UserLevel) String() string {
+ switch l {
+ case UserLevelMember:
+ return "Member"
+ case UserLevelContributor:
+ return "Contributor"
+ case UserLevelJanitor:
+ return "Janitor"
+ case UserLevelModerator:
+ return "Moderator"
+ case UserLevelAdmin:
+ return "Admin"
+ default:
+ return "Unknown"
+ }
+}
+
+func (l UserLevel) Color() string {
+ switch l {
+ case UserLevelMember:
+ return "#8B9DC3" // Soft periwinkle blue
+ case UserLevelContributor:
+ return "#7FCDAE" // Mint green
+ case UserLevelJanitor:
+ return "#9BB5FF" // Light electric blue
+ case UserLevelModerator:
+ return "#FF9F9B" // Coral pink
+ case UserLevelAdmin:
+ return "#C39BD3" // Lavender purple
+ case UserLevelSuperAdmin:
+ return "#FFD93D" // Electric yellow
+ default:
+ return "#B0B0B0" // Neutral gray
+ }
+}
+
+type Rating string
+
+const (
+ RatingSafe Rating = "Safe"
+ RatingQuestionable Rating = "Questionable"
+ RatingSensitive Rating = "Sensitive"
+ RatingExplicit Rating = "Explicit"
+)
+
+type ImageContentType string
+
+const (
+ ImageContentTypeJPEG ImageContentType = "image/jpeg"
+ ImageContentTypePNG ImageContentType = "image/png"
+ ImageContentTypeGIF ImageContentType = "image/gif"
+ ImageContentTypeWebP ImageContentType = "image/webp"
+ ImageContentTypeAVIF ImageContentType = "image/avif"
+ ImageContentTypeSVG ImageContentType = "image/svg+xml"
+ ImageContentTypeBMP ImageContentType = "image/bmp"
+ ImageContentTypeTIFF ImageContentType = "image/tiff"
+ ImageContentTypeICO ImageContentType = "image/x-icon"
+ ImageContentTypeHEIC ImageContentType = "image/heic"
+ ImageContentTypeHEIF ImageContentType = "image/heif"
+ ImageContentTypeUnknown ImageContentType = "application/octet-stream"
+)
+
+type ImageSizeType string
+
+const (
+ ImageSizeTypeIcon ImageSizeType = "icon"
+ ImageSizeTypeThumbnail ImageSizeType = "thumbnail"
+ ImageSizeTypeSmall ImageSizeType = "small"
+ ImageSizeTypeMedium ImageSizeType = "medium"
+ ImageSizeTypeLarge ImageSizeType = "large"
+ ImageSizeTypeOriginal ImageSizeType = "original"
+)
+
+type TagType string
+
+const (
+ TagTypeGeneral TagType = "general"
+ TagTypeArtist TagType = "artist"
+ TagTypeCopyright TagType = "copyright"
+ TagTypeCharacter TagType = "character"
+ TagTypeMeta TagType = "meta"
+)
+
+func (t TagType) Color() string {
+ switch t {
+ case TagTypeGeneral:
+ return "#4ECDC4" // Turquoise cyan
+ case TagTypeArtist:
+ return "#FF6B9D" // Hot pink
+ case TagTypeCopyright:
+ return "#A8E6CF" // Mint green
+ case TagTypeCharacter:
+ return "#FFB347" // Peach orange
+ case TagTypeMeta:
+ return "#DDA0DD" // Plum purple
+ default:
+ return "#E6E6FA" // Light lavender
+ }
+}
+
+type EmailTokenType string
+
+const (
+ EmailTokenTypeVerification EmailTokenType = "verification"
+ EmailTokenTypePasswordReset EmailTokenType = "password_reset"
+ EmailTokenTypeChangeEmail EmailTokenType = "change_email"
+)