Files
workavia-drive/Documentation/docs/internal-documentation/backend-services/notifications/database-models.md
T
montaghanmy 10fe6f78d1 feat: init
2023-03-23 11:03:16 +01:00

1.0 KiB

description
description
Notification database model

Database models

channel_members_notification_preferences

{
	//Primary key
	"company_id": "uuid-v4",
	"channel_id": "uuid-v4",
	"user_id": "uuid-v4",

	"preferences": "all" | "mentions" | "me" | "none",
	"last_read": 16000000, //Timestamp in seconds	
}

channel_thread_users

{
	//Primary key
	"company_id": "uuid-v4",
	"channel_id": "uuid-v4",
	"thread_id": "uuid-v4",

	"user_id": "uuid-v4"
}

user_notifications_badges (this is not a counter like scylladb counters here, just classic table)

{
	//Primary key
	"company_id": "uuid-v4", (partition key)
	"user_id": "uuid-v4", (clustering key)
	"workspace_id": "uuid-v4", (clustering key)
	"channel_id": "uuid-v4", (clustering key)
	"thread_id": "uuid-v4", (clustering key)
}

user_notifications_general_preferences

{
	//Primary key
	"company_id": "uuid-v4",
	"user_id": "uuid-v4",
	"workspace_id": "uuid-v4",

	"preferences": PreferencesObject
}