1
0
Fork 0
mirror of https://github.com/mautrix/whatsapp.git synced 2026-05-15 18:16:53 -04:00
mautrix-whatsapp/pkg/connector/wadb/database.go
2025-07-29 17:43:51 +03:00

55 lines
1.4 KiB
Go

package wadb
import (
"github.com/rs/zerolog"
"go.mau.fi/util/dbutil"
"maunium.net/go/mautrix/bridgev2/networkid"
"go.mau.fi/mautrix-whatsapp/pkg/connector/wadb/upgrades"
)
type Database struct {
*dbutil.Database
Conversation *ConversationQuery
Message *MessageQuery
PollOption *PollOptionQuery
MediaRequest *MediaRequestQuery
HSNotif *HistorySyncNotificationQuery
AvatarCache *AvatarCacheQuery
}
func New(bridgeID networkid.BridgeID, db *dbutil.Database, log zerolog.Logger) *Database {
db = db.Child("whatsapp_version", upgrades.Table, dbutil.ZeroLogger(log))
return &Database{
Database: db,
Conversation: &ConversationQuery{
BridgeID: bridgeID,
QueryHelper: dbutil.MakeQueryHelper(db, func(_ *dbutil.QueryHelper[*Conversation]) *Conversation {
return &Conversation{}
}),
},
Message: &MessageQuery{
BridgeID: bridgeID,
Database: db,
},
PollOption: &PollOptionQuery{
BridgeID: bridgeID,
Database: db,
},
MediaRequest: &MediaRequestQuery{
BridgeID: bridgeID,
QueryHelper: dbutil.MakeQueryHelper(db, func(_ *dbutil.QueryHelper[*MediaRequest]) *MediaRequest {
return &MediaRequest{}
}),
},
HSNotif: &HistorySyncNotificationQuery{
BridgeID: bridgeID,
Database: db,
},
AvatarCache: &AvatarCacheQuery{
QueryHelper: dbutil.MakeQueryHelper(db, func(_ *dbutil.QueryHelper[*AvatarCacheEntry]) *AvatarCacheEntry {
return &AvatarCacheEntry{}
}),
},
}
}