1
0
mirror of https://gitlab.com/comunic/comunicapiv3 synced 2024-11-22 13:29:21 +00:00

Update database structure

This commit is contained in:
Pierre HUBERT 2021-03-04 15:11:56 +01:00
parent bce79a76e9
commit d680b2bb49
2 changed files with 4 additions and 77 deletions

View File

@ -68,6 +68,7 @@ CREATE TABLE `comunic_conversations_list` (
`color` varchar(6) DEFAULT NULL,
`background` varchar(255) DEFAULT NULL,
`group_id` int DEFAULT NULL,
`last_activity` int DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
@ -244,41 +245,4 @@ CREATE TABLE `comunic_custom_emojis` (
`user_id` INT NULL,
`shortcut` VARCHAR(45) NULL,
`path` VARCHAR(255) NULL,
PRIMARY KEY (`id`));
CREATE VIEW comunic_conversations_info AS
SELECT
l.id,
m.user_id,
l.name,
l.color,
l.background,
l.creation_time,
l.group_id,
l.can_everyone_add_members,
m.is_admin,
m.added_on AS user_added_on,
m.following,
m.last_message_seen,
msg.id AS last_msg_id,
msg.time_sent AS last_msg_time_sent,
msg.user_id AS last_msg_user_id,
msg.message AS last_msg_message,
msg.filepath AS last_msg_filepath,
msg.file_size AS last_msg_file_size,
msg.file_name AS last_msg_file_name,
msg.file_thumbnail AS last_msg_file_thumbnail,
msg.file_type AS last_msg_file_type
FROM
comunic_conversations_list l
JOIN
comunic_conversations_members m ON l.id = m.conv_id
JOIN
(SELECT
MAX(id) AS max_msg_id, conv_id
FROM
comunic_conversations_messages
GROUP BY conv_id) msg_id ON msg_id.conv_id = l.id
JOIN
comunic_conversations_messages msg ON msg.id = msg_id.max_msg_id;
PRIMARY KEY (`id`));

View File

@ -20,45 +20,8 @@ alter table comunic_conversations_members
-- Conversations list table
alter table comunic_conversations_list drop column user_id;
alter table comunic_conversations_list drop column last_active;
alter table comunic_conversations_list rename column last_active to last_activity;
alter table comunic_conversations_list
add column color varchar(6),
add column background varchar(255),
add group_id int;
-- Conversations view
CREATE VIEW comunic_conversations_info AS
SELECT
l.id,
m.user_id,
l.name,
l.color,
l.background,
l.creation_time,
l.group_id,
l.can_everyone_add_members,
m.is_admin,
m.added_on AS user_added_on,
m.following,
m.last_message_seen,
msg.id AS last_msg_id,
msg.time_sent AS last_msg_time_sent,
msg.user_id AS last_msg_user_id,
msg.message AS last_msg_message,
msg.filepath AS last_msg_filepath,
msg.file_size AS last_msg_file_size,
msg.file_name AS last_msg_file_name,
msg.file_thumbnail AS last_msg_file_thumbnail,
msg.file_type AS last_msg_file_type
FROM
comunic_conversations_list l
JOIN
comunic_conversations_members m ON l.id = m.conv_id
JOIN
(SELECT
MAX(id) AS max_msg_id, conv_id
FROM
comunic_conversations_messages
GROUP BY conv_id) msg_id ON msg_id.conv_id = l.id
JOIN
comunic_conversations_messages msg ON msg.id = msg_id.max_msg_id;
add group_id int;