// Package logic builds GET /v1/meta/enums from entity consts and i18n labels. package logic import ( "strings" "spark-server/internal/module/meta/entity" "spark-server/internal/pkg/i18n" ) // Catalog returns every closed set, with labels in the request language. func Catalog(lang i18n.Lang) *entity.Catalog { return &entity.Catalog{ Gender: gender(lang), UserStatus: userStatus(lang), ConversationType: conversationType(lang), MessageKind: messageKind(lang), MessageType: messageType(lang), MessageStatus: messageStatus(lang), RelationKind: relationKind(lang), FriendRequestStatus: friendRequestStatus(lang), FriendSource: friendSource(lang), ReportReason: reportReason(lang), GroupStatus: groupStatus(lang), GroupRole: groupRole(lang), MailboxEventType: mailboxEventType(lang), TCPCommand: tcpCommand(lang), EnvelopeCode: envelopeCode(lang), DeviceType: deviceType(lang), Language: language(lang), UploadPurpose: uploadPurpose(lang), SystemKind: systemKind(lang), MomentKind: momentKind(lang), MomentVisibility: momentVisibility(lang), MomentStatus: momentStatus(lang), MomentNoticeKind: momentNoticeKind(lang), MomentVisibleDays: momentVisibleDays(lang), } } func item(lang i18n.Lang, set, name string, value any) entity.Item { key := "enum." + set + "." + strings.NewReplacer(".", "_", "-", "_").Replace(name) return entity.Item{Value: value, Name: name, Label: i18n.T(lang, key, nil)} }