spark-server/internal/module/meta/logic/enums.go
2026-09-18 17:51:42 +08:00

45 lines
1.6 KiB
Go

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