]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Bookmark class now has schemaDef (for Managed_DataObject)
authorMikael Nordfeldth <mmn@hethane.se>
Sun, 18 Aug 2013 13:03:06 +0000 (15:03 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 18 Aug 2013 13:03:06 +0000 (15:03 +0200)
plugins/Bookmark/Bookmark.php

index f58276433ffacdcd454567de6b4d0232418ef0ae..65c767efddaffc36212daa00707d2cd8df6babb2 100644 (file)
@@ -53,72 +53,36 @@ class Bookmark extends Managed_DataObject
     public $uri;         // varchar(255)
     public $created;     // datetime
 
-    /**
-     * Get an instance by compound key
-     *
-     * This is a utility method to get a single instance with a given set of
-     * key-value pairs. Usually used for the primary key for a compound key; thus
-     * the name.
-     *
-     * @param array $kv array of key-value mappings
-     *
-     * @return Bookmark object found, or null for no hits
-     *
-     */
-    function pkeyGet($kv)
-    {
-        return Memcached_DataObject::pkeyGet('Bookmark', $kv);
-    }
-
-    /**
-     * return table definition for DB_DataObject
-     *
-     * DB_DataObject needs to know something about the table to manipulate
-     * instances. This method provides all the DB_DataObject needs to know.
-     *
-     * @return array array of column definitions
-     */
-    function table()
-    {
-        return array('id' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'profile_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
-                     'url' => DB_DATAOBJECT_STR,
-                     'title' => DB_DATAOBJECT_STR,
-                     'description' => DB_DATAOBJECT_STR,
-                     'uri' => DB_DATAOBJECT_STR,
-                     'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE +
-                     DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL);
-    }
-
-    /**
-     * return key definitions for DB_DataObject
-     *
-     * @return array list of key field names
-     */
-    function keys()
-    {
-        return array_keys($this->keyTypes());
-    }
-
-    /**
-     * return key definitions for Memcached_DataObject
-     *
-     * @return array associative array of key definitions
-     */
-    function keyTypes()
-    {
-        return array('id' => 'K',
-                     'uri' => 'U');
-    }
-
-    /**
-     * Magic formula for non-autoincrementing integer primary keys
-     *
-     * @return array magic three-false array that stops auto-incrementing.
-     */
-    function sequenceKey()
+    public static function schemaDef()
     {
-        return array(false, false, false);
+        return array(
+            'fields' => array(
+                'id' => array('type' => 'char',
+                            'length' => 36,
+                            'not null' => true),
+                'profile_id' => array('type' => 'int', 'not null' => true),
+                'uri' => array('type' => 'varchar',
+                            'length' => 255,
+                            'not null' => true),
+                'url' => array('type' => 'varchar',
+                            'length' => 255,
+                            'not null' => true),
+                'title' => array('type' => 'varchar', 'length' => 255),
+                'description' => array('type' => 'text'),
+                'created' => array('type' => 'datetime', 'not null' => true),
+            ),
+            'primary key' => array('id'),
+            'unique keys' => array(
+                'bookmark_uri_key' => array('uri'),
+            ),
+            'foreign keys' => array(
+                'bookmark_profile_id_fkey' => array('profile', array('profile_id' => 'id'))
+            ),
+            'indexes' => array('bookmark_created_idx' => array('created'),
+                            'bookmark_url_idx' => array('url'),
+                            'bookmark_profile_id_idx' => array('profile_id'),
+            ),
+        );
     }
 
     /**