X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FUser_im_prefs.php;h=6a5fc7f3ab55a70b4df8f8b060d5bba2c3e97c20;hb=4d179c6b0ce1b567c3e6f77e1db845c621cd2bf0;hp=75be8969e05d7e3da8a25b6de180f1d371c03a78;hpb=7765ddae81e9b29af06009d961b3d56b293f527c;p=quix0rs-gnu-social.git diff --git a/classes/User_im_prefs.php b/classes/User_im_prefs.php index 75be8969e0..6a5fc7f3ab 100644 --- a/classes/User_im_prefs.php +++ b/classes/User_im_prefs.php @@ -29,66 +29,45 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class User_im_prefs extends Memcached_DataObject +class User_im_prefs extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ public $__table = 'user_im_prefs'; // table name public $user_id; // int(4) primary_key not_null - public $screenname; // varchar(255) not_null - public $transport; // varchar(255) not_null + public $screenname; // varchar(191) not_null not 255 because utf8mb4 takes more space + public $transport; // varchar(191) not_null not 255 because utf8mb4 takes more space public $notify; // tinyint(1) public $replies; // tinyint(1) - public $microid; // tinyint(1) public $updatefrompresence; // tinyint(1) public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 public $modified; // timestamp not_null default_CURRENT_TIMESTAMP - /* Static get */ - function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_im_prefs',$k,$v); } - - function pkeyGet($kv) - { - return Memcached_DataObject::pkeyGet('User_im_prefs', $kv); - } - /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - /* - DB_DataObject calculates the sequence key(s) by taking the first key returned by the keys() function. - In this case, the keys() function returns user_id as the first key. user_id is not a sequence, but - DB_DataObject's sequenceKey() will incorrectly think it is. Then, since the sequenceKey() is a numeric - type, but is not set to autoincrement in the database, DB_DataObject will create a _seq table and - manage the sequence itself. This is not the correct behavior for the user_id in this class. - So we override that incorrect behavior, and simply say there is no sequence key. - */ - function sequenceKey() + public static function schemaDef() { - return array(false,false); - } - - /** - * We have two compound keys with unique constraints: - * (transport, user_id) which is our primary key, and - * (transport, screenname) which is an additional constraint. - * - * Currently there's not a way to represent that second key - * in the general keys list, so we're adding it here to the - * list of keys to use for caching, ensuring that it gets - * cleared as well when we change. - * - * @return array of cache keys - */ - function _allCacheKeys() - { - $ukeys = 'transport,screenname'; - $uvals = $this->transport . ',' . $this->screenname; - - $ckeys = parent::_allCacheKeys(); - $ckeys[] = $this->cacheKey($this->tableName(), $ukeys, $uvals); - return $ckeys; + return array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user'), + 'screenname' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'screenname on this service'), + 'transport' => array('type' => 'varchar', 'length' => 191, 'not null' => true, 'description' => 'transport (ex xmpp, aim)'), + 'notify' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'Notify when a new notice is sent'), + 'replies' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'Send replies from people not subscribed to'), + 'updatefrompresence' => array('type' => 'int', 'size' => 'tiny', 'not null' => true, 'default' => 0, 'description' => 'Send replies from people not subscribed to.'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id', 'transport'), + 'unique keys' => array( + 'transport_screenname_key' => array('transport', 'screenname'), + ), + 'foreign keys' => array( + 'user_im_prefs_user_id_fkey' => array('user', array('user_id' => 'id')), + ), + ); } }