zikula-modules / InterCom

Messenger for Zikula
16 stars 7 forks source link

InterCom db design and some informations #84

Closed Kaik closed 7 years ago

Kaik commented 7 years ago

Hi, I'm working on InterCom for a long time and I think I finally get to the point I can propose a good db design I have read all feature requests and add some of my and this is what comes of it. Features

MessageEntity

id
subject
text
conversationid
type
send
sender
sendAsGroup
recipientUsers collection
recipientGroups collection
messageUserData *collection

MessageUserData

messageid
userid
notified
seen
deleted
stored
label

Everything is based on current user so lets say we want to get messages that are sent to us: We get all MessageEntities where conversationid is null("first message in conversation") my id is in recipientUsers or my groups are in recipient gropus AND in messageUserData has deleted set to date or true.

I believe this db design can be extended by label (onetoone) field in MessageUserData and separate labels table so users can add their own labels apart from default ones and mark a message with selected label.

There will be only 1.5x and 2x version no 1.4x For upgrade I will use import it is easier for me to do it this way. For classic look, I will try to mimic something like this https://adminlte.io/themes/AdminLTE/pages/mailbox/mailbox.html on plain bootstrap

I have a lot of pieces done and basically only desing was the real problem. If you have any ideas regarding this matter please comment.

Kaik commented 7 years ago

done