feat(relations): spouse 40/41 и новый UX вкладки Связи (проверено)

This commit is contained in:
AidarKC
2026-04-26 18:24:30 +03:00
parent 3e10407afd
commit 1fec6c7b54
12 changed files with 292 additions and 131 deletions
@@ -194,6 +194,7 @@ public final class DatabaseTriggersInstaller {
int FRIEND = (int) DatabaseInitializer.CONNECTION_FRIEND;
int CONTACT = (int) DatabaseInitializer.CONNECTION_CONTACT;
int FOLLOW = (int) DatabaseInitializer.CONNECTION_FOLLOW;
int SPOUSE = (int) DatabaseInitializer.CONNECTION_SPOUSE;
int PARENT = (int) DatabaseInitializer.CONNECTION_PARENT;
int CHILD = (int) DatabaseInitializer.CONNECTION_CHILD;
int SIBLING = (int) DatabaseInitializer.CONNECTION_SIBLING;
@@ -201,6 +202,7 @@ public final class DatabaseTriggersInstaller {
int UNFRIEND = (int) DatabaseInitializer.CONNECTION_UNFRIEND;
int UNCONTACT = (int) DatabaseInitializer.CONNECTION_UNCONTACT;
int UNFOLLOW = (int) DatabaseInitializer.CONNECTION_UNFOLLOW;
int UNSPOUSE = (int) DatabaseInitializer.CONNECTION_UNSPOUSE;
int UNPARENT = (int) DatabaseInitializer.CONNECTION_UNPARENT;
int UNCHILD = (int) DatabaseInitializer.CONNECTION_UNCHILD;
int UNSIBLING = (int) DatabaseInitializer.CONNECTION_UNSIBLING;
@@ -210,7 +212,7 @@ public final class DatabaseTriggersInstaller {
AFTER INSERT ON blocks
WHEN NEW.msg_type = 3
BEGIN
-- FRIEND/CONTACT/FOLLOW/PARENT/CHILD/SIBLING:
-- FRIEND/CONTACT/FOLLOW/SPOUSE/PARENT/CHILD/SIBLING:
-- 1) если записи нет — создаём
INSERT OR IGNORE INTO connections_state (
login, rel_type, to_login, to_bch_name, to_block_number, to_block_hash
@@ -231,7 +233,7 @@ public final class DatabaseTriggersInstaller {
NEW.to_bch_name,
NEW.to_block_number,
NEW.to_block_hash
WHERE NEW.msg_sub_type IN (%d, %d, %d, %d, %d, %d)
WHERE NEW.msg_sub_type IN (%d, %d, %d, %d, %d, %d, %d)
AND COALESCE(
NEW.to_login,
CASE
@@ -262,7 +264,7 @@ public final class DatabaseTriggersInstaller {
ELSE NULL
END
)
AND NEW.msg_sub_type IN (%d, %d, %d, %d, %d)
AND NEW.msg_sub_type IN (%d, %d, %d, %d, %d, %d, %d)
AND COALESCE(
NEW.to_login,
CASE
@@ -275,7 +277,7 @@ public final class DatabaseTriggersInstaller {
) IS NOT NULL
AND NEW.to_bch_name IS NOT NULL;
-- UNFRIEND/UNCONTACT/UNFOLLOW/UNPARENT/UNCHILD/UNSIBLING:
-- UNFRIEND/UNCONTACT/UNFOLLOW/UNSPOUSE/UNPARENT/UNCHILD/UNSIBLING:
-- удаляем соответствующее "позитивное" состояние
DELETE FROM connections_state
WHERE login = NEW.login
@@ -296,6 +298,7 @@ public final class DatabaseTriggersInstaller {
WHEN %d THEN %d
WHEN %d THEN %d
WHEN %d THEN %d
WHEN %d THEN %d
ELSE rel_type
END
AND COALESCE(
@@ -308,20 +311,21 @@ public final class DatabaseTriggersInstaller {
ELSE NULL
END
) IS NOT NULL
AND NEW.msg_sub_type IN (%d, %d, %d, %d, %d, %d);
AND NEW.msg_sub_type IN (%d, %d, %d, %d, %d, %d, %d);
END;
""".formatted(
FRIEND, CONTACT, FOLLOW, PARENT, CHILD, SIBLING,
FRIEND, CONTACT, PARENT, CHILD, SIBLING,
FRIEND, CONTACT, FOLLOW, SPOUSE, PARENT, CHILD, SIBLING,
FRIEND, CONTACT, FOLLOW, SPOUSE, PARENT, CHILD, SIBLING,
UNFRIEND, FRIEND,
UNCONTACT, CONTACT,
UNFOLLOW, FOLLOW,
UNSPOUSE, SPOUSE,
UNPARENT, PARENT,
UNCHILD, CHILD,
UNSIBLING, SIBLING,
UNFRIEND, UNCONTACT, UNFOLLOW, UNPARENT, UNCHILD, UNSIBLING
UNFRIEND, UNCONTACT, UNFOLLOW, UNSPOUSE, UNPARENT, UNCHILD, UNSIBLING
));
}