summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Foreign_service.php24
-rw-r--r--classes/Foreign_subscription.php23
-rw-r--r--classes/Foreign_user.php27
-rw-r--r--classes/stoica.ini37
-rw-r--r--db/laconica.sql35
5 files changed, 146 insertions, 0 deletions
diff --git a/classes/Foreign_service.php b/classes/Foreign_service.php
new file mode 100644
index 000000000..ec38c5417
--- /dev/null
+++ b/classes/Foreign_service.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Table Definition for foreign_service
+ */
+require_once 'DB/DataObject.php';
+
+class Foreign_service extends DB_DataObject
+{
+ ###START_AUTOCODE
+ /* the code below is auto generated do not remove the above tag */
+
+ public $__table = 'foreign_service'; // table name
+ public $id; // int(4) primary_key not_null
+ public $name; // varchar(32) unique_key not_null
+ public $description; // varchar(255)
+ public $created; // datetime() not_null
+ public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
+
+ /* Static get */
+ function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Foreign_service',$k,$v); }
+
+ /* the code above is auto generated do not remove the tag below */
+ ###END_AUTOCODE
+}
diff --git a/classes/Foreign_subscription.php b/classes/Foreign_subscription.php
new file mode 100644
index 000000000..b8cbed8ca
--- /dev/null
+++ b/classes/Foreign_subscription.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Table Definition for foreign_subscription
+ */
+require_once 'DB/DataObject.php';
+
+class Foreign_subscription extends DB_DataObject
+{
+ ###START_AUTOCODE
+ /* the code below is auto generated do not remove the above tag */
+
+ public $__table = 'foreign_subscription'; // table name
+ public $service; // int(4) primary_key not_null
+ public $subscriber; // int(4) primary_key not_null
+ public $subscribed; // int(4) primary_key not_null
+ public $created; // datetime() not_null
+
+ /* Static get */
+ function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Foreign_subscription',$k,$v); }
+
+ /* the code above is auto generated do not remove the tag below */
+ ###END_AUTOCODE
+}
diff --git a/classes/Foreign_user.php b/classes/Foreign_user.php
new file mode 100644
index 000000000..98034df49
--- /dev/null
+++ b/classes/Foreign_user.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Table Definition for foreign_user
+ */
+require_once 'DB/DataObject.php';
+
+class Foreign_user extends DB_DataObject
+{
+ ###START_AUTOCODE
+ /* the code below is auto generated do not remove the above tag */
+
+ public $__table = 'foreign_user'; // table name
+ public $id; // int(4) primary_key not_null
+ public $service; // int(4) primary_key not_null
+ public $uri; // varchar(255) unique_key not_null
+ public $nickname; // varchar(255)
+ public $user_id; // int(4)
+ public $credentials; // varchar(255)
+ public $created; // datetime() not_null
+ public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
+
+ /* Static get */
+ function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Foreign_user',$k,$v); }
+
+ /* the code above is auto generated do not remove the tag below */
+ ###END_AUTOCODE
+}
diff --git a/classes/stoica.ini b/classes/stoica.ini
index 8a21d33ce..4dead9610 100644
--- a/classes/stoica.ini
+++ b/classes/stoica.ini
@@ -47,6 +47,43 @@ modified = 384
notice_id = K
user_id = K
+[foreign_service]
+id = 129
+name = 130
+description = 2
+created = 142
+modified = 384
+
+[foreign_service__keys]
+id = K
+name = U
+
+[foreign_subscription]
+service = 129
+subscriber = 129
+subscribed = 129
+created = 142
+
+[foreign_subscription__keys]
+service = K
+subscriber = K
+subscribed = K
+
+[foreign_user]
+id = 129
+service = 129
+uri = 130
+nickname = 2
+user_id = 1
+credentials = 2
+created = 142
+modified = 384
+
+[foreign_user__keys]
+id = K
+service = K
+uri = U
+
[nonce]
consumer_key = 130
tok = 130
diff --git a/db/laconica.sql b/db/laconica.sql
index 16faf53a0..da2a1c89d 100644
--- a/db/laconica.sql
+++ b/db/laconica.sql
@@ -251,3 +251,38 @@ create table notice_tag (
constraint primary key (tag, notice_id),
index notice_tag_created_idx (created)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;
+
+/* Synching with foreign services */
+
+create table foreign_service (
+ id int not null primary key comment 'numeric key for service',
+ name varchar(32) not null unique key comment 'name of the service',
+ description varchar(255) comment 'description',
+ created datetime not null comment 'date this record was created',
+ modified timestamp comment 'date this record was modified'
+) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table foreign_user (
+ id int not null comment 'unique numeric key on foreign service',
+ service int not null comment 'foreign key to service' references foreign_service(id),
+ uri varchar(255) not null unique key comment 'identifying URI',
+ nickname varchar(255) comment 'nickname on foreign service',
+ user_id int comment 'link to user on this system, if exists' references user (id),
+ credentials varchar(255) comment 'authc credentials, typically a password',
+ created datetime not null comment 'date this record was created',
+ modified timestamp comment 'date this record was modified',
+
+ constraint primary key (id, service),
+ index foreign_user_user_id_idx (user_id)
+) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;
+
+create table foreign_subscription (
+ service int not null comment 'service where relationship happens' references foreign_service(id),
+ subscriber int not null comment 'subscriber on foreign service' references foreign_user (id),
+ subscribed int not null comment 'subscribed user' references foreign_user (id),
+ created datetime not null comment 'date this record was created',
+
+ constraint primary key (service, subscriber, subscribed),
+ index foreign_subscription_subscriber_idx (subscriber),
+ index foreign_subscription_subscribed_idx (subscribed)
+) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;