aboutsummaryrefslogtreecommitdiff
path: root/models/enums.go
blob: 333414190e2bdb6030fb9d9bcc1afad264347c0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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"
)