1
0
Fork 0
mirror of https://github.com/mautrix/whatsapp.git synced 2026-05-16 02:26:53 -04:00
mautrix-whatsapp/pkg/connector/wadb/database.go

55 lines
1.4 KiB
Go
Raw Permalink Normal View History

2024-08-13 14:11:10 +03:00
package wadb
2024-09-10 15:09:08 +03:00
import (
"github.com/rs/zerolog"
"go.mau.fi/util/dbutil"
"maunium.net/go/mautrix/bridgev2/networkid"
2024-09-10 15:09:08 +03:00
"go.mau.fi/mautrix-whatsapp/pkg/connector/wadb/upgrades"
2024-09-10 15:09:08 +03:00
)
type Database struct {
*dbutil.Database
Conversation *ConversationQuery
Message *MessageQuery
PollOption *PollOptionQuery
MediaRequest *MediaRequestQuery
HSNotif *HistorySyncNotificationQuery
2025-07-29 16:18:56 +03:00
AvatarCache *AvatarCacheQuery
2024-09-10 15:09:08 +03:00
}
func New(bridgeID networkid.BridgeID, db *dbutil.Database, log zerolog.Logger) *Database {
2024-09-10 15:09:08 +03:00
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,
},
2025-07-29 16:18:56 +03:00
AvatarCache: &AvatarCacheQuery{
QueryHelper: dbutil.MakeQueryHelper(db, func(_ *dbutil.QueryHelper[*AvatarCacheEntry]) *AvatarCacheEntry {
return &AvatarCacheEntry{}
}),
},
2024-09-10 15:09:08 +03:00
}
}