The main channel table, this table should only be used when changing things on the channel (not frequently) so we don't add counters or last_activity or anything like that.
{
//Primary key
"company_id": "uuid-v4",
"workspace_id": "string" // ("uuid-v4" | "direct")
"id": "uuid-v4",
//Content
"owner": "uuid-v4", //User-id of the channel owner (invisible but used on some access restriction-
"icon": "String",
"name": "String",
"description": "String",
"channel_group": "String",
"visibility": "private" | "public" | "direct"
"default": true | false, //The new members join by default this channel
"archived": false | true,
"archivation_date": 0, //Timestamp
}
This table is used to find an existing discussion with a group of members. The "identifier" is generated from the group of members.
{
//Primary key
"company_id": "uuid-v4",
"identifier": "string", // ordered CSV list of user ids
"channel_id": "uuid-v4" //A way to find it in the channel table
}
Channels tabs
channel_tabs
Channels can have tabs that are connexion to other apps or different views.