Store the interaction date as well.
authorMichael <heluecht@pirati.ca>
Tue, 10 Mar 2020 22:04:03 +0000 (22:04 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 10 Mar 2020 22:04:03 +0000 (22:04 +0000)
database.sql
src/Model/Item.php
static/dbstructure.config.php

index f33f892..4956798 100644 (file)
@@ -1,6 +1,6 @@
 -- ------------------------------------------
--- Friendica 2020.03-dev (Dalmatian Bellflower)
--- DB_UPDATE_VERSION 1337
+-- Friendica 2020.03-rc (Dalmatian Bellflower)
+-- DB_UPDATE_VERSION 1338
 -- ------------------------------------------
 
 
@@ -254,6 +254,17 @@ CREATE TABLE IF NOT EXISTS `contact` (
         INDEX `issued-id` (`issued-id`(64))
 ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='contact table';
 
+--
+-- TABLE contact-relation
+--
+CREATE TABLE IF NOT EXISTS `contact-relation` (
+       `cid` int unsigned NOT NULL DEFAULT 0 COMMENT 'contact the related contact had interacted with',
+       `relation-cid` int unsigned NOT NULL DEFAULT 0 COMMENT 'related contact who had interacted with the contact',
+       `last-interaction` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT 'Date of the last interaction',
+        PRIMARY KEY(`cid`,`relation-cid`),
+        INDEX `relation-cid` (`relation-cid`)
+) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Contact relations';
+
 --
 -- TABLE conv
 --
index 319abf6..b9aeff4 100644 (file)
@@ -1753,10 +1753,7 @@ class Item
 
                                // Update the contact relations
                                if ($item['author-id'] != $parent['author-id']) {
-                                       $fields = ['cid' => $parent['author-id'], 'relation-cid' => $item['author-id']];
-                                       if (!DBA::exists('contact-relation', $fields)) {
-                                               DBA::insert('contact-relation', $fields, true);
-                                       }
+                                       dba::update('contact-relation', ['last-interaction' => $item['created']], ['cid' => $parent['author-id'], 'relation-cid' => $item['author-id']], true);
                                }
                        } else {
                                /*
index 94a6e6e..b8daa4e 100755 (executable)
@@ -322,6 +322,7 @@ return [
                "fields" => [
                        "cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "contact the related contact had interacted with"],
                        "relation-cid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "relation" => ["contact" => "id"], "comment" => "related contact who had interacted with the contact"],
+                       "last-interaction" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Date of the last interaction"],
                ],
                "indexes" => [
                        "PRIMARY" => ["cid", "relation-cid"],