]> git.mxchange.org Git - friendica.git/blobdiff - static/dbstructure.config.php
Merge pull request #8362 from annando/push-pull
[friendica.git] / static / dbstructure.config.php
index 2c8f4b34bee88b2332148860159932d1d4af6849..0c0b289414ec0d73e2481cc97e2807cd792efc84 100755 (executable)
@@ -1,6 +1,23 @@
 <?php
-
-/* Main database structure configuration file.
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ * Main database structure configuration file.
  *
  * Here are described all the tables, fields and indexes Friendica needs to work.
  *
@@ -34,7 +51,7 @@
 use Friendica\Database\DBA;
 
 if (!defined('DB_UPDATE_VERSION')) {
-       define('DB_UPDATE_VERSION', 1322);
+       define('DB_UPDATE_VERSION', 1335);
 }
 
 return [
@@ -102,6 +119,9 @@ return [
                        "pubkey" => ["type" => "text", "comment" => ""],
                        "baseurl" => ["type" => "varchar(255)", "comment" => "baseurl of the ap contact"],
                        "generator" => ["type" => "varchar(255)", "comment" => "Name of the contact's system"],
+                       "following_count" => ["type" => "int unsigned", "default" => 0, "comment" => "Number of following contacts"],
+                       "followers_count" => ["type" => "int unsigned", "default" => 0, "comment" => "Number of followers"],
+                       "statuses_count" => ["type" => "int unsigned", "default" => 0, "comment" => "Number of posts"],
                        "updated" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""]
                ],
                "indexes" => [
@@ -220,7 +240,7 @@ return [
                        "location" => ["type" => "varchar(255)", "default" => "", "comment" => ""],
                        "about" => ["type" => "text", "comment" => ""],
                        "keywords" => ["type" => "text", "comment" => "public keywords (interests) of the contact"],
-                       "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""],
+                       "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Deprecated"],
                        "xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "attag" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "avatar" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -274,7 +294,7 @@ return [
                        "reason" => ["type" => "text", "comment" => ""],
                        "closeness" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "99", "comment" => ""],
                        "info" => ["type" => "mediumtext", "comment" => ""],
-                       "profile-id" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+                       "profile-id" => ["type" => "int unsigned", "comment" => "Deprecated"],
                        "bdyear" => ["type" => "varchar(4)", "not null" => "1", "default" => "", "comment" => ""],
                        "bd" => ["type" => "date", "not null" => "1", "default" => DBA::NULL_DATE, "comment" => ""],
                        "notify_new_posts" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -322,6 +342,7 @@ return [
                        "conversation-uri" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation URI"],
                        "conversation-href" => ["type" => "varbinary(255)", "not null" => "1", "default" => "", "comment" => "GNU Social conversation link"],
                        "protocol" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "255", "comment" => "The protocol of the item"],
+                       "direction" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "How the message arrived here: 1=push, 2=pull"],
                        "source" => ["type" => "mediumtext", "comment" => "Original source"],
                        "received" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Receiving date"],
                ],
@@ -446,7 +467,7 @@ return [
                        "location" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "about" => ["type" => "text", "comment" => ""],
                        "keywords" => ["type" => "text", "comment" => "puplic keywords (interests)"],
-                       "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""],
+                       "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => "Deprecated"],
                        "birthday" => ["type" => "varchar(32)", "not null" => "1", "default" => DBA::NULL_DATE, "comment" => ""],
                        "community" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "1 if contact is forum account"],
                        "contact-type" => ["type" => "tinyint", "not null" => "1", "default" => "-1", "comment" => ""],
@@ -523,6 +544,7 @@ return [
                        "info" => ["type" => "text", "comment" => ""],
                        "register_policy" => ["type" => "tinyint", "not null" => "1", "default" => "0", "comment" => ""],
                        "registered-users" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "comment" => "Number of registered users"],
+                       "directory-type" => ["type" => "tinyint", "default" => "0", "comment" => "Type of directory service (Poco, Mastodon)"],
                        "poco" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "noscrape" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => ""],
@@ -626,7 +648,7 @@ return [
                        "extid" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "post-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "Post type (personal note, bookmark, ...)"],
                        "global" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-                       "private" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "distribution is restricted"],
+                       "private" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "0=public, 1=private, 2=unlisted"],
                        "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                        "moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                        "deleted" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "item has been deleted"],
@@ -702,6 +724,7 @@ return [
                        "resource-id" => ["resource-id"],
                        "deleted_changed" => ["deleted", "changed"],
                        "uid_wall_changed" => ["uid", "wall", "changed"],
+                       "mention_uid_id" => ["mention", "uid", "id"],
                        "uid_eventid" => ["uid", "event-id"],
                        "icid" => ["icid"],
                        "iaid" => ["iaid"],
@@ -868,7 +891,6 @@ return [
                "comment" => "notifications",
                "fields" => [
                        "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
-                       "hash" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
                        "type" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
                        "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -887,7 +909,6 @@ return [
                ],
                "indexes" => [
                        "PRIMARY" => ["id"],
-                       "hash_uid" => ["hash", "uid"],
                        "seen_uid_date" => ["seen", "uid", "date"],
                        "uid_date" => ["uid", "date"],
                        "uid_type_link" => ["uid", "type", "link(190)"],
@@ -1081,40 +1102,40 @@ return [
                "fields" => [
                        "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
                        "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner User id"],
-                       "profile-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name of the profile"],
-                       "is-default" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Mark this profile as default profile"],
+                       "profile-name" => ["type" => "varchar(255)", "comment" => "Deprecated"],
+                       "is-default" => ["type" => "boolean", "comment" => "Deprecated"],
                        "hide-friends" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Hide friend list from viewers of this profile"],
                        "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "pdesc" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Title or description"],
+                       "pdesc" => ["type" => "varchar(255)", "comment" => "Deprecated"],
                        "dob" => ["type" => "varchar(32)", "not null" => "1", "default" => "0000-00-00", "comment" => "Day of birth"],
                        "address" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "locality" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "region" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "postal-code" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""],
                        "country-name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "hometown" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "gender" => ["type" => "varchar(32)", "not null" => "1", "default" => "", "comment" => ""],
-                       "marital" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "with" => ["type" => "text", "comment" => ""],
-                       "howlong" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
-                       "sexual" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "politic" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "religion" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
+                       "hometown" => ["type" => "varchar(255)", "comment" => "Deprecated"],
+                       "gender" => ["type" => "varchar(32)", "comment" => "Deprecated"],
+                       "marital" => ["type" => "varchar(255)", "comment" => "Deprecated"],
+                       "with" => ["type" => "text", "comment" => "Deprecated"],
+                       "howlong" => ["type" => "datetime", "comment" => "Deprecated"],
+                       "sexual" => ["type" => "varchar(255)", "comment" => "Deprecated"],
+                       "politic" => ["type" => "varchar(255)", "comment" => "Deprecated"],
+                       "religion" => ["type" => "varchar(255)", "comment" => "Deprecated"],
                        "pub_keywords" => ["type" => "text", "comment" => ""],
                        "prv_keywords" => ["type" => "text", "comment" => ""],
-                       "likes" => ["type" => "text", "comment" => ""],
-                       "dislikes" => ["type" => "text", "comment" => ""],
-                       "about" => ["type" => "text", "comment" => ""],
-                       "summary" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
-                       "music" => ["type" => "text", "comment" => ""],
-                       "book" => ["type" => "text", "comment" => ""],
-                       "tv" => ["type" => "text", "comment" => ""],
-                       "film" => ["type" => "text", "comment" => ""],
-                       "interest" => ["type" => "text", "comment" => ""],
-                       "romance" => ["type" => "text", "comment" => ""],
-                       "work" => ["type" => "text", "comment" => ""],
-                       "education" => ["type" => "text", "comment" => ""],
-                       "contact" => ["type" => "text", "comment" => ""],
+                       "likes" => ["type" => "text", "comment" => "Deprecated"],
+                       "dislikes" => ["type" => "text", "comment" => "Deprecated"],
+                       "about" => ["type" => "text", "comment" => "Profile description"],
+                       "summary" => ["type" => "varchar(255)", "comment" => "Deprecated"],
+                       "music" => ["type" => "text", "comment" => "Deprecated"],
+                       "book" => ["type" => "text", "comment" => "Deprecated"],
+                       "tv" => ["type" => "text", "comment" => "Deprecated"],
+                       "film" => ["type" => "text", "comment" => "Deprecated"],
+                       "interest" => ["type" => "text", "comment" => "Deprecated"],
+                       "romance" => ["type" => "text", "comment" => "Deprecated"],
+                       "work" => ["type" => "text", "comment" => "Deprecated"],
+                       "education" => ["type" => "text", "comment" => "Deprecated"],
+                       "contact" => ["type" => "text", "comment" => "Deprecated"],
                        "homepage" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "xmpp" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "photo" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -1142,6 +1163,25 @@ return [
                        "PRIMARY" => ["id"],
                ]
        ],
+       "profile_field" => [
+               "comment" => "Custom profile fields",
+               "fields" => [
+                       "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
+                       "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "relation" => ["user" => "uid"], "comment" => "Owner user id"],
+                       "order" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "1", "comment" => "Field ordering per user"],
+                       "psid" => ["type" => "int unsigned", "relation" => ["permissionset" => "id"], "comment" => "ID of the permission set of this profile field - 0 = public"],
+                       "label" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Label of the field"],
+                       "value" => ["type" => "text", "comment" => "Value of the field"],
+                       "created" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "creation time"],
+                       "edited" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "last edit time"],
+               ],
+               "indexes" => [
+                       "PRIMARY" => ["id"],
+                       "uid" => ["uid"],
+                       "order" => ["order"],
+                       "psid" => ["psid"],
+               ]
+       ],
        "push_subscriber" => [
                "comment" => "Used for OStatus: Contains feed subscribers",
                "fields" => [
@@ -1255,7 +1295,7 @@ return [
                        "received" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
                        "changed" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""],
                        "wall" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
-                       "private" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
+                       "private" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "0=public, 1=private, 2=unlisted"],
                        "pubmail" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                        "moderated" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
                        "visible" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""],
@@ -1384,10 +1424,14 @@ return [
                        "iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["item" => "id"], "comment" => "Item id"],
                        "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["user" => "uid"], "comment" => "User id"],
                        "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Marker to hide an item from the user"],
-                       "ignored" => ["type" => "boolean", "comment" => "Ignore this thread if set"]
+                       "ignored" => ["type" => "boolean", "comment" => "Ignore this thread if set"],
+                       "pinned" => ["type" => "boolean", "comment" => "The item is pinned on the profile page"],
+                       "notification-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
                ],
                "indexes" => [
-                       "PRIMARY" => ["uid", "iid"]
+                       "PRIMARY" => ["uid", "iid"],
+                       "uid_pinned" => ["uid", "pinned"],
+                       "iid_uid" => ["iid", "uid"]
                ]
        ],
        "worker-ipc" => [