mattermost-plugin-bridge-xmpp/server/store/kvstore/constants.go

79 lines
3.2 KiB
Go

package kvstore
// KV Store key prefixes and constants
// This file centralizes all KV store key patterns used throughout the plugin
// to ensure consistency and avoid key conflicts.
const (
// CurrentKVStoreVersion is the current version requiring migrations
CurrentKVStoreVersion = 2
// KeyPrefixMatrixUser is the prefix for Matrix user ID -> Mattermost user ID mappings
KeyPrefixMatrixUser = "matrix_user_"
// KeyPrefixMattermostUser is the prefix for Mattermost user ID -> Matrix user ID mappings
KeyPrefixMattermostUser = "mattermost_user_"
// KeyPrefixChannelMapping is the prefix for Mattermost channel ID -> Matrix room mappings
KeyPrefixChannelMapping = "channel_mapping_"
// KeyPrefixRoomMapping is the prefix for Matrix room identifier -> Mattermost channel ID mappings
KeyPrefixRoomMapping = "room_mapping_"
// KeyPrefixGhostUser is the prefix for Mattermost user ID -> Matrix ghost user ID cache
KeyPrefixGhostUser = "ghost_user_"
// KeyPrefixGhostRoom is the prefix for ghost user room membership tracking
KeyPrefixGhostRoom = "ghost_room_"
// KeyPrefixMatrixEventPost is the prefix for Matrix event ID -> Mattermost post ID mappings
KeyPrefixMatrixEventPost = "matrix_event_post_"
// KeyPrefixMatrixReaction is the prefix for Matrix reaction event ID -> reaction info mappings
KeyPrefixMatrixReaction = "matrix_reaction_"
// KeyStoreVersion is the key for tracking the current KV store schema version
KeyStoreVersion = "kv_store_version"
// KeyPrefixLegacyDMMapping was the old prefix for DM mappings (migrated to channel_mapping_)
KeyPrefixLegacyDMMapping = "dm_mapping_"
// KeyPrefixLegacyMatrixDMMapping was the old prefix for Matrix DM mappings (migrated to room_mapping_)
KeyPrefixLegacyMatrixDMMapping = "matrix_dm_mapping_"
)
// Helper functions for building KV store keys
// BuildMatrixUserKey creates a key for Matrix user -> Mattermost user mapping
func BuildMatrixUserKey(matrixUserID string) string {
return KeyPrefixMatrixUser + matrixUserID
}
// BuildMattermostUserKey creates a key for Mattermost user -> Matrix user mapping
func BuildMattermostUserKey(mattermostUserID string) string {
return KeyPrefixMattermostUser + mattermostUserID
}
// BuildChannelMappingKey creates a key for channel -> room mapping
func BuildChannelMappingKey(channelID string) string {
return KeyPrefixChannelMapping + channelID
}
// BuildRoomMappingKey creates a key for room -> channel mapping
func BuildRoomMappingKey(roomIdentifier string) string {
return KeyPrefixRoomMapping + roomIdentifier
}
// BuildGhostUserKey creates a key for ghost user cache
func BuildGhostUserKey(mattermostUserID string) string {
return KeyPrefixGhostUser + mattermostUserID
}
// BuildGhostRoomKey creates a key for ghost user room membership
func BuildGhostRoomKey(mattermostUserID, roomID string) string {
return KeyPrefixGhostRoom + mattermostUserID + "_" + roomID
}
// BuildMatrixEventPostKey creates a key for Matrix event -> post mapping
func BuildMatrixEventPostKey(matrixEventID string) string {
return KeyPrefixMatrixEventPost + matrixEventID
}
// BuildMatrixReactionKey creates a key for Matrix reaction storage
func BuildMatrixReactionKey(reactionEventID string) string {
return KeyPrefixMatrixReaction + reactionEventID
}