MDL-36941 core: added new messaging and notification tables

This commit is contained in:
Mark Nelson 2017-12-21 13:28:07 +08:00
parent a15c745936
commit a63f98245c
3 changed files with 188 additions and 1 deletions

View file

@ -2020,5 +2020,116 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2018022800.03);
}
if ($oldversion < 2018032200.01) {
// Define table 'messages' to be created.
$table = new xmldb_table('messages');
// Adding fields to table 'messages'.
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('useridfrom', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('conversationid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('subject', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('fullmessage', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('fullmessageformat', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0);
$table->add_field('fullmessagehtml', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('smallmessage', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
// Adding keys to table 'messages'.
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$table->add_key('useridfrom', XMLDB_KEY_FOREIGN, array('useridfrom'), 'user', array('id'));
$table->add_key('conversationid', XMLDB_KEY_FOREIGN, array('conversationid'), 'message_conversations', array('id'));
// Conditionally launch create table for 'messages'.
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Define table 'message_conversations' to be created.
$table = new xmldb_table('message_conversations');
// Adding fields to table 'message_conversations'.
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
// Adding keys to table 'message_conversations'.
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
// Conditionally launch create table for 'message_conversations'.
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Define table 'message_conversation_members' to be created.
$table = new xmldb_table('message_conversation_members');
// Adding fields to table 'message_conversation_members'.
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('conversationid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
// Adding keys to table 'message_conversation_members'.
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$table->add_key('conversationid', XMLDB_KEY_FOREIGN, array('conversationid'), 'message_conversations', array('id'));
$table->add_key('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
// Conditionally launch create table for 'message_conversation_members'.
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Define table 'message_user_actions' to be created.
$table = new xmldb_table('message_user_actions');
// Adding fields to table 'message_user_actions'.
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('userid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('messageid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('action', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
// Adding keys to table 'message_user_actions'.
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$table->add_key('userid', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
$table->add_key('messageid', XMLDB_KEY_FOREIGN, array('messageid'), 'messages', array('id'));
// Conditionally launch create table for 'message_user_actions'.
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Define table 'notifications' to be created.
$table = new xmldb_table('notifications');
// Adding fields to table 'notifications'.
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
$table->add_field('useridfrom', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('useridto', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
$table->add_field('subject', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('fullmessage', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('fullmessageformat', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, 0);
$table->add_field('fullmessagehtml', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('smallmessage', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('component', XMLDB_TYPE_CHAR, '100', null, null, null, null);
$table->add_field('eventtype', XMLDB_TYPE_CHAR, '100', null, null, null, null);
$table->add_field('contexturl', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('contexturlname', XMLDB_TYPE_TEXT, null, null, null, null, null);
$table->add_field('timeread', XMLDB_TYPE_INTEGER, '10', null, false, null, null);
$table->add_field('timecreated', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null);
// Adding keys to table 'notifications'.
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
$table->add_key('useridto', XMLDB_KEY_FOREIGN, array('useridto'), 'user', array('id'));
// Conditionally launch create table for 'notifications'.
if (!$dbman->table_exists($table)) {
$dbman->create_table($table);
}
// Main savepoint reached.
upgrade_main_savepoint(true, 2018032200.01);
}
return true;
}