mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2024-12-17 17:20:21 +01:00
6cf23f1fd1
* add chat items migration * chat and chat items types * queries draft * ChatInfo with optional ChatItem * schema adjustments * flat schema and queries * refactor ChatResponse using ChatItem types * schema adjustments * refactor GroupInfo to include GroupMember of the user * remove Message * createNewChatItem, sendDirectChatItem * refactor to use GroupInfo in Chat type and all ChatResponses * replace ContactName with Contact in some ChatResponse constructors * remove Group selectors * minor correction * refactor * refactor 2 * nullable created_by_msg_id * remove normalized schema and queries * ON DELETE CASCADE / SET NULL * CIContent to Text * files chat_item_id * fix * apply ciContentToText * queries folder * refactor * moar refactor Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
45 lines
1.3 KiB
SQL
45 lines
1.3 KiB
SQL
SELECT
|
|
c.contact_id,
|
|
cp.display_name,
|
|
cp.full_name,
|
|
cp.properties,
|
|
g.group_id,
|
|
gp.display_name,
|
|
gp.full_name,
|
|
gp.properties,
|
|
gm.group_member_id,
|
|
gmp.display_name,
|
|
gmp.full_name,
|
|
gmp.properties,
|
|
ci.chat_item_id,
|
|
ci.chat_msg_id,
|
|
ci.created_by_msg_id,
|
|
ci.item_sent,
|
|
ci.item_ts,
|
|
ci.item_deleted,
|
|
ci.item_text,
|
|
ci.item_content,
|
|
md.msg_delivery_id,
|
|
md.chat_ts,
|
|
md.agent_msg_meta,
|
|
mde.delivery_status,
|
|
mde.created_at
|
|
FROM chat_items ci
|
|
LEFT JOIN contacts c ON c.contact_id == ci.contact_id
|
|
JOIN contact_profiles cp ON cp.contact_profile_id == c.contact_profile_id
|
|
LEFT JOIN groups g ON g.group_id = ci.group_id
|
|
JOIN group_profiles gp ON gp.group_profile_id == g.group_profile_id
|
|
LEFT JOIN group_members ON gm.group_member_id == ci.group_member_id
|
|
JOIN contact_profiles gmp ON gmp.contact_profile_id == gm.contact_profile_id
|
|
JOIN messages m ON m.message_id == ci.created_by_msg_id
|
|
JOIN msg_deliveries md ON md.message_id = m.message_id
|
|
JOIN (
|
|
SELECT msg_delivery_id, MAX(created_at) MaxDate
|
|
FROM msg_delivery_events
|
|
GROUP BY msg_delivery_id
|
|
) MDEMaxDates ON MDEMaxDates.msg_delivery_id = md.msg_delivery_id
|
|
JOIN msg_delivery_events mde ON mde.msg_delivery_id = MDEMaxDates.msg_delivery_id
|
|
AND mde.created_at = MDEMaxDates.MaxDate
|
|
WHERE ci.user_id = ?
|
|
ORDER BY ci.item_ts DESC
|