Merged com.woltlab.wcf.moderation into WCF
[GitHub/WoltLab/WCF.git] / wcfsetup / setup / db / install.sql
index df1b8d6edff8eabde233792333c6ea986226b442..9283a40d733244a06af51be5c6aebd53943cb30f 100644 (file)
@@ -121,6 +121,78 @@ CREATE TABLE wcf1_application (
        isPrimary TINYINT(1) NOT NULL DEFAULT 0
 );
 
+DROP TABLE IF EXISTS wcf1_attachment;
+CREATE TABLE wcf1_attachment (
+       attachmentID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10),
+       userID INT(10),
+       tmpHash VARCHAR(40) NOT NULL DEFAULT '',
+       filename VARCHAR(255) NOT NULL DEFAULT '',
+       filesize INT(10) NOT NULL DEFAULT 0,
+       fileType VARCHAR(255) NOT NULL DEFAULT '',
+       fileHash VARCHAR(40) NOT NULL DEFAULT '',
+       
+       isImage TINYINT(1) NOT NULL DEFAULT 0,
+       width SMALLINT(5) NOT NULL DEFAULT 0,
+       height SMALLINT(5) NOT NULL DEFAULT 0, 
+       
+       tinyThumbnailType VARCHAR(255) NOT NULL DEFAULT '',
+       tinyThumbnailSize INT(10) NOT NULL DEFAULT 0,
+       tinyThumbnailWidth SMALLINT(5) NOT NULL DEFAULT 0,
+       tinyThumbnailHeight SMALLINT(5) NOT NULL DEFAULT 0,
+       
+       thumbnailType VARCHAR(255) NOT NULL DEFAULT '',
+       thumbnailSize INT(10) NOT NULL DEFAULT 0,
+       thumbnailWidth SMALLINT(5) NOT NULL DEFAULT 0,
+       thumbnailHeight SMALLINT(5) NOT NULL DEFAULT 0,
+       
+       downloads INT(10) NOT NULL DEFAULT 0,
+       lastDownloadTime INT(10) NOT NULL DEFAULT 0,
+       uploadTime INT(10) NOT NULL DEFAULT 0,
+       showOrder SMALLINT(5) NOT NULL DEFAULT 0,
+       KEY (objectTypeID, objectID),
+       KEY (objectTypeID, tmpHash),
+       KEY (objectID, uploadTime)
+);
+
+DROP TABLE IF EXISTS wcf1_bbcode;
+CREATE TABLE wcf1_bbcode (
+       bbcodeID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       bbcodeTag VARCHAR(255) NOT NULL,
+       packageID INT(10) NOT NULL,
+       htmlOpen VARCHAR(255) NOT NULL DEFAULT '',
+       htmlClose VARCHAR(255) NOT NULL DEFAULT '',
+       allowedChildren VARCHAR(255) NOT NULL DEFAULT 'all',
+       className VARCHAR(255) NOT NULL DEFAULT '',
+       wysiwygIcon varchar(255) NOT NULL DEFAULT '',
+       buttonLabel VARCHAR(255) NOT NULL DEFAULT '',
+       isSourceCode TINYINT(1) NOT NULL DEFAULT 0,
+       isDisabled TINYINT(1) NOT NULL DEFAULT 0,
+       showButton TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY bbcodeTag (bbcodeTag)
+);
+
+DROP TABLE IF EXISTS wcf1_bbcode_attribute;
+CREATE TABLE wcf1_bbcode_attribute (
+       attributeID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       bbcodeID INT(10) NOT NULL,
+       attributeNo TINYINT(3) NOT NULL DEFAULT 0,
+       attributeHtml VARCHAR(255) NOT NULL DEFAULT '',
+       validationPattern VARCHAR(255) NOT NULL DEFAULT '',
+       required TINYINT(1) NOT NULL DEFAULT 0,
+       useText TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY attributeNo (bbcodeID, attributeNo)
+);
+
+DROP TABLE IF EXISTS wcf1_bbcode_media_provider;
+CREATE TABLE wcf1_bbcode_media_provider (
+       providerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       title VARCHAR(255) NOT NULL,
+       regex TEXT NOT NULL,
+       html TEXT NOT NULL
+);
+
 DROP TABLE IF EXISTS wcf1_category;
 CREATE TABLE wcf1_category (
        categoryID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -197,6 +269,23 @@ CREATE TABLE wcf1_cronjob_log (
        error TEXT
 );
 
+DROP TABLE IF EXISTS wcf1_dashboard_box;
+CREATE TABLE wcf1_dashboard_box (
+       boxID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       boxName VARCHAR(255) NOT NULL DEFAULT '',
+       boxType VARCHAR(30) NOT NULL DEFAULT 'sidebar', -- can be 'content' or 'sidebar'
+       className VARCHAR(255) NOT NULL DEFAULT ''
+);
+
+DROP TABLE IF EXISTS wcf1_dashboard_option;
+CREATE TABLE wcf1_dashboard_option (
+       objectTypeID INT(10) NOT NULL,
+       boxID INT(10) NOT NULL,
+       showOrder INT(10) NOT NULL,
+       UNIQUE KEY dashboardOption (objectTypeID, boxID)
+);
+
 DROP TABLE IF EXISTS wcf1_event_listener;
 CREATE TABLE wcf1_event_listener (
        listenerID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -250,6 +339,37 @@ CREATE TABLE wcf1_language_server (
        isDisabled TINYINT(1) NOT NULL DEFAULT 0
 );
 
+DROP TABLE IF EXISTS wcf1_moderation_queue;
+CREATE TABLE wcf1_moderation_queue (
+       queueID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       containerID INT(10) NOT NULL DEFAULT 0,
+       userID INT(10) NULL,
+       time INT(10) NOT NULL DEFAULT 0,
+       
+       -- internal
+       assignedUserID INT(10) NULL,
+       status TINYINT(1) NOT NULL DEFAULT 0,
+       comment TEXT,
+       lastChangeTime INT(10) NOT NULL DEFAULT 0,
+       
+       -- additional data, e.g. message if reporting content
+       additionalData TEXT,
+       
+       UNIQUE KEY affectedObject (objectTypeID, objectID)
+);
+
+DROP TABLE IF EXISTS wcf1_moderation_queue_to_user;
+CREATE TABLE wcf1_moderation_queue_to_user (
+       queueID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       isAffected TINYINT(1) NOT NULL DEFAULT 0,
+       
+       UNIQUE KEY queue (queueID, userID),
+       KEY affected (queueID, userID, isAffected)
+);
+
 DROP TABLE IF EXISTS wcf1_modification_log;
 CREATE TABLE wcf1_modification_log (
        logID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -537,6 +657,19 @@ CREATE TABLE wcf1_sitemap (
        UNIQUE KEY sitemapName (packageID, sitemapName)
 );
 
+DROP TABLE IF EXISTS wcf1_smiley;
+CREATE TABLE wcf1_smiley (
+       smileyID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       categoryID INT(10),
+       smileyPath VARCHAR(255) NOT NULL DEFAULT '',
+       smileyTitle VARCHAR(255) NOT NULL DEFAULT '',
+       smileyCode VARCHAR(255) NOT NULL DEFAULT '',
+       aliases TEXT NOT NULL,
+       showOrder INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY smileyCode (smileyCode)
+);
+
 DROP TABLE IF EXISTS wcf1_spider;
 CREATE TABLE wcf1_spider (
        spiderID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -613,6 +746,25 @@ CREATE TABLE wcf1_template_listener (
        KEY templateName (environment, templateName)
 );
 
+DROP TABLE IF EXISTS wcf1_tracked_visit;
+CREATE TABLE wcf1_tracked_visit (
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       visitTime INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (objectTypeID, objectID, userID),
+       KEY (userID, visitTime)
+);
+
+DROP TABLE IF EXISTS wcf1_tracked_visit_type;
+CREATE TABLE wcf1_tracked_visit_type (
+       objectTypeID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       visitTime INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (objectTypeID, userID),
+       KEY (userID, visitTime)
+);
+
 DROP TABLE IF EXISTS wcf1_user;
 CREATE TABLE wcf1_user (
        userID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -625,10 +777,87 @@ CREATE TABLE wcf1_user (
        styleID INT(10) NOT NULL DEFAULT 0,
        banned TINYINT(1) NOT NULL DEFAULT 0,
        banReason MEDIUMTEXT NULL,
+       activationCode INT(10) NOT NULL DEFAULT 0,
+       lastLostPasswordRequestTime INT(10) NOT NULL DEFAULT 0,
+       lostPasswordKey VARCHAR(40) NOT NULL DEFAULT '',
+       lastUsernameChange INT(10) NOT NULL DEFAULT 0,
+       newEmail VARCHAR(255) NOT NULL DEFAULT '',
+       oldUsername VARCHAR(255) NOT NULL DEFAULT '',
+       quitStarted INT(10) NOT NULL DEFAULT 0,
+       reactivationCode INT(10) NOT NULL DEFAULT 0,
+       registrationIpAddress VARCHAR(39) NOT NULL DEFAULT '',
+       avatarID INT(10),
+       disableAvatar TINYINT(1) NOT NULL DEFAULT 0,
+       disableAvatarReason TEXT,
+       enableGravatar TINYINT(1) NOT NULL DEFAULT 0,
+       signature TEXT,
+       signatureEnableBBCodes TINYINT(1) NOT NULL DEFAULT 1,
+       signatureEnableHtml TINYINT(1) NOT NULL DEFAULT 0,
+       signatureEnableSmilies TINYINT(1) NOT NULL DEFAULT 1,
+       disableSignature TINYINT(1) NOT NULL DEFAULT 0,
+       disableSignatureReason TEXT,
+       lastActivityTime INT(10) NOT NULL DEFAULT 0,
+       profileHits INT(10) NOT NULL DEFAULT 0,
+       rankID INT(10),
+       userTitle VARCHAR(255) NOT NULL DEFAULT '',
+       userOnlineGroupID INT(10),
+       activityPoints INT(10) NOT NULL DEFAULT 0,
+       notificationMailToken VARCHAR(20) NOT NULL DEFAULT '',
+       authData VARCHAR(255) NOT NULL DEFAULT '',
        
        KEY username (username),
        KEY registrationDate (registrationDate),
-       KEY styleID (styleID)
+       KEY styleID (styleID),
+       KEY activationCode (activationCode),
+       KEY registrationData (registrationIpAddress, registrationDate),
+       KEY activityPoints (activityPoints)
+);
+
+DROP TABLE IF EXISTS wcf1_user_activity_event;
+CREATE TABLE wcf1_user_activity_event (
+       eventID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       languageID INT(10),
+       userID INT(10) NOT NULL,
+       time INT(10) NOT NULL,
+       additionalData TEXT,
+       
+       KEY (time),
+       KEY (userID, time),
+       KEY (objectTypeID, objectID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_activity_point;
+CREATE TABLE wcf1_user_activity_point (
+       userID INT(10) NOT NULL,
+       objectTypeID INT(10) NOT NULL,
+       activityPoints INT(10) NOT NULL DEFAULT 0,
+       PRIMARY KEY (userID, objectTypeID),
+       KEY (objectTypeID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_activity_point_event;
+CREATE TABLE wcf1_user_activity_point_event (
+       eventID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       additionalData TEXT,
+       UNIQUE KEY (objectTypeID, userID, objectID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_avatar;
+CREATE TABLE wcf1_user_avatar (
+       avatarID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       avatarName VARCHAR(255) NOT NULL DEFAULT '',
+       avatarExtension VARCHAR(7) NOT NULL DEFAULT '',
+       width SMALLINT(5) NOT NULL DEFAULT 0,
+       height SMALLINT(5) NOT NULL DEFAULT 0,
+       userID INT(10),
+       fileHash VARCHAR(40) NOT NULL DEFAULT '',
+       cropX SMALLINT(5) NOT NULL DEFAULT 0,
+       cropY SMALLINT(5) NOT NULL DEFAULT 0
 );
 
 DROP TABLE IF EXISTS wcf1_user_collapsible_content;
@@ -639,11 +868,23 @@ CREATE TABLE wcf1_user_collapsible_content (
        UNIQUE KEY (objectTypeID, objectID, userID)
 );
 
+DROP TABLE IF EXISTS wcf1_user_follow;
+CREATE TABLE wcf1_user_follow (
+       followID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       userID INT(10) NOT NULL,
+       followUserID INT(10) NOT NULL,
+       time INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (userID, followUserID)
+);
+
 DROP TABLE IF EXISTS wcf1_user_group;
 CREATE TABLE wcf1_user_group (
        groupID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        groupName VARCHAR(255) NOT NULL DEFAULT '',
-       groupType TINYINT(1) NOT NULL DEFAULT 4
+       groupType TINYINT(1) NOT NULL DEFAULT 4,
+       priority MEDIUMINT(8) NOT NULL DEFAULT 0,
+       userOnlineMarking VARCHAR(255) NOT NULL DEFAULT '%s',
+       showOnTeamPage TINYINT(1) NOT NULL DEFAULT 0
 );
 
 DROP TABLE IF EXISTS wcf1_user_group_option;
@@ -684,6 +925,89 @@ CREATE TABLE wcf1_user_group_option_value (
        UNIQUE KEY groupID (groupID, optionID)
 );
 
+DROP TABLE IF EXISTS wcf1_user_ignore;
+CREATE TABLE wcf1_user_ignore (
+       ignoreID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       userID INT(10) NOT NULL,
+       ignoreUserID INT(10) NOT NULL,
+       time INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (userID, ignoreUserID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_menu_item;
+CREATE TABLE wcf1_user_menu_item (
+       menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       menuItem VARCHAR(255) NOT NULL DEFAULT '',
+       parentMenuItem VARCHAR(255) NOT NULL DEFAULT '',
+       menuItemController VARCHAR(255) NOT NULL DEFAULT '',
+       menuItemLink VARCHAR(255) NOT NULL DEFAULT '',
+       showOrder INT(10) NOT NULL DEFAULT 0,
+       permissions TEXT,
+       options TEXT,
+       className VARCHAR(255) NOT NULL DEFAULT '',
+       UNIQUE KEY menuItem (menuItem, packageID)
+);
+
+-- notifications
+DROP TABLE IF EXISTS wcf1_user_notification;
+CREATE TABLE wcf1_user_notification (
+       notificationID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       eventID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL DEFAULT 0,
+       eventHash VARCHAR(40) NOT NULL DEFAULT '',
+       authorID INT(10),
+       time INT(10) NOT NULL DEFAULT 0,
+       additionalData TEXT,
+       KEY (eventHash),
+       UNIQUE KEY (packageID, eventID, objectID)
+);
+
+-- notification recipients
+DROP TABLE IF EXISTS wcf1_user_notification_to_user;
+CREATE TABLE wcf1_user_notification_to_user (
+       notificationID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       mailNotified TINYINT(1) NOT NULL DEFAULT 0,
+       UNIQUE KEY notificationID (notificationID, userID)
+);
+
+-- events that create notifications
+DROP TABLE IF EXISTS wcf1_user_notification_event;
+CREATE TABLE wcf1_user_notification_event (
+       eventID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       eventName VARCHAR(255) NOT NULL DEFAULT '',
+       objectTypeID INT(10) NOT NULL,
+       className VARCHAR(255) NOT NULL DEFAULT '',
+       permissions TEXT,
+       options TEXT,
+       preset TINYINT(1) NOT DEFAULT 0,
+       UNIQUE KEY eventName (eventName, objectTypeID)
+);
+
+-- user configuration for events
+DROP TABLE IF EXISTS wcf1_user_notification_event_to_user;
+CREATE TABLE wcf1_user_notification_event_to_user (
+       userID INT(10) NOT NULL,
+       eventID INT(10) NOT NULL,
+       mailNotificationType ENUM('none', 'instant', 'daily') NOT NULL DEFAULT 'none',
+       UNIQUE KEY (eventID, userID)
+);
+
+DROP TABLE IF EXISTS wcf1_user_object_watch;
+CREATE TABLE wcf1_user_object_watch (
+       watchID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       objectTypeID INT(10) NOT NULL,
+       objectID INT(10) NOT NULL,
+       userID INT(10) NOT NULL,
+       notification TINYINT(1) NOT NULL DEFAULT 0,
+       
+       UNIQUE KEY (objectTypeID, userID, objectID),
+       KEY (objectTypeID, objectID)
+);
+
 DROP TABLE IF EXISTS wcf1_user_option;
 CREATE TABLE wcf1_user_option (
        optionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
@@ -727,6 +1051,40 @@ CREATE TABLE wcf1_user_option_value (
        userID INT(10) NOT NULL PRIMARY KEY
 );
 
+DROP TABLE IF EXISTS wcf1_user_profile_menu_item;
+CREATE TABLE wcf1_user_profile_menu_item (
+       menuItemID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       packageID INT(10) NOT NULL,
+       menuItem VARCHAR(255) NOT NULL,
+       showOrder INT(10) NOT NULL DEFAULT 0,
+       permissions TEXT NULL,
+       options TEXT NULL,
+       className VARCHAR(255) NOT NULL,
+       UNIQUE KEY (packageID, menuItem)
+);
+
+DROP TABLE IF EXISTS wcf1_user_profile_visitor;
+CREATE TABLE wcf1_user_profile_visitor (
+       visitorID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       ownerID INT(10),
+       userID INT(10),
+       time INT(10) NOT NULL DEFAULT 0,
+       UNIQUE KEY (ownerID, userID),
+       KEY (time)
+);
+
+DROP TABLE IF EXISTS wcf1_user_rank;
+CREATE TABLE wcf1_user_rank (
+       rankID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
+       groupID INT(10),
+       requiredPoints INT(10) NOT NULL DEFAULT 0,
+       rankTitle VARCHAR(255) NOT NULL DEFAULT '',
+       cssClassName VARCHAR(255) NOT NULL DEFAULT '',
+       rankImage VARCHAR(255) NOT NULL DEFAULT '',
+       repeatImage TINYINT(3) NOT NULL DEFAULT 1,
+       requiredGender TINYINT(1) NOT NULL DEFAULT 0
+);
+
 DROP TABLE IF EXISTS wcf1_user_storage;
 CREATE TABLE wcf1_user_storage (
        userID INT(10) NOT NULL,
@@ -776,6 +1134,13 @@ ALTER TABLE wcf1_acp_template ADD FOREIGN KEY (packageID) REFERENCES wcf1_packag
 
 ALTER TABLE wcf1_application ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_attachment ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_attachment ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_bbcode ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_bbcode_attribute ADD FOREIGN KEY (bbcodeID) REFERENCES wcf1_bbcode (bbcodeID) ON DELETE CASCADE;
+
 ALTER TABLE wcf1_category ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_clipboard_action ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
@@ -848,6 +1213,9 @@ ALTER TABLE wcf1_session ADD FOREIGN KEY (spiderID) REFERENCES wcf1_spider (spid
 
 ALTER TABLE wcf1_sitemap ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_smiley ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_smiley ADD FOREIGN KEY (categoryID) REFERENCES wcf1_category (categoryID) ON DELETE SET NULL;
+
 ALTER TABLE wcf1_user_storage ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
 
 ALTER TABLE wcf1_style ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
@@ -884,6 +1252,72 @@ ALTER TABLE wcf1_user_to_group ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_gr
 ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
 ALTER TABLE wcf1_user_to_language ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE CASCADE;
 
+ALTER TABLE wcf1_dashboard_box ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_dashboard_option ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_dashboard_option ADD FOREIGN KEY (boxID) REFERENCES wcf1_dashboard_box (boxID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_tracked_visit ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_tracked_visit ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_tracked_visit_type ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_tracked_visit_type ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user ADD FOREIGN KEY (avatarID) REFERENCES wcf1_user_avatar (avatarID) ON DELETE SET NULL;
+ALTER TABLE wcf1_user ADD FOREIGN KEY (rankID) REFERENCES wcf1_user_rank (rankID) ON DELETE SET NULL;
+ALTER TABLE wcf1_user ADD FOREIGN KEY (userOnlineGroupID) REFERENCES wcf1_user_group (groupID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_avatar ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_follow ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_follow ADD FOREIGN KEY (followUserID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_ignore ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_ignore ADD FOREIGN KEY (ignoreUserID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_notification ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification ADD FOREIGN KEY (eventID) REFERENCES wcf1_user_notification_event (eventID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification ADD FOREIGN KEY (authorID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_notification_to_user ADD FOREIGN KEY (notificationID) REFERENCES wcf1_user_notification (notificationID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_notification_event ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification_event ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_notification_event_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_notification_event_to_user ADD FOREIGN KEY (eventID) REFERENCES wcf1_user_notification_event (eventID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_profile_menu_item ADD FOREIGN KEY (packageID) REFERENCES wcf1_package (packageID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_rank ADD FOREIGN KEY (groupID) REFERENCES wcf1_user_group (groupID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_activity_event ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_event ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_event ADD FOREIGN KEY (languageID) REFERENCES wcf1_language (languageID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_user_activity_point ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_point ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_activity_point_event ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_activity_point_event ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_profile_visitor ADD FOREIGN KEY (ownerID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_profile_visitor ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_user_object_watch ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+ALTER TABLE wcf1_user_object_watch ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+
+ALTER TABLE wcf1_moderation_queue ADD FOREIGN KEY (objectTypeID) REFERENCES wcf1_object_type (objectTypeID) ON DELETE CASCADE;
+ALTER TABLE wcf1_moderation_queue ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+ALTER TABLE wcf1_moderation_queue ADD FOREIGN KEY (assignedUserID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
+
+ALTER TABLE wcf1_moderation_queue_to_user ADD FOREIGN KEY (queueID) REFERENCES wcf1_moderation_queue (queueID) ON DELETE CASCADE;
+ALTER TABLE wcf1_moderation_queue_to_user ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
+
+
 /* default inserts */
 -- default user groups
 INSERT INTO wcf1_user_group (groupName, groupType) VALUES ('wcf.acp.group.group1', 1);
@@ -1002,3 +1436,46 @@ INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('useFluidLa
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('pageLogo', '');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('individualLess', '');
 INSERT INTO wcf1_style_variable (variableName, defaultValue) VALUES ('overrideLess', '');
+
+-- media providers
+-- Videos
+       -- Youtube
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('YouTube', 'https?://(?:.+?\\.)?youtu(?:\\.be/|be\\.com/watch\\?(?:.*?&)?v=)(?<ID>[a-zA-Z0-9_-]+)(?<start>#t=(?:\\d+|(?:\\d+h(?:\\d+m)?(?:\\d+s)?)|(?:\\d+m(?:\\d+s)?)|(?:\\d+s))$)?', '<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/{$ID}?wmode=transparent{$start}" frameborder="0" allowfullscreen></iframe>');
+       -- Vimeo
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Vimeo', 'http://vimeo\\.com/(?<ID>\\d+)', '<iframe src="http://player.vimeo.com/video/{$ID}" width="400" height="225" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>');
+       -- MyVideo
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('MyVideo', 'http://(?:www\\.)?myvideo\\.de/watch/(?<ID>\\d+)', '<object style="width:611px;height:383px;" width="611" height="383"><embed src="http://www.myvideo.de/movie/{$ID}" width="611" height="383" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"></embed><param name="movie" value="http://www.myvideo.de/movie/{$ID}"></param><param name="AllowFullscreen" value="true"></param><param name="AllowScriptAccess" value="always"></param></object>');
+       -- Clipfish
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Clipfish', 'http://(?:www\\.)?clipfish\\.de/video/(?<ID>\\d+)/', '<div style="width:464px; height:404px;"><div style="width:464px; height:384px;"><iframe src="http://www.clipfish.de/embed_video/?vid={$ID}&amp;as=0&amp;col=990000" name="Clipfish Embedded Video" width="464" height="384" align="left" marginheight="0" marginwidth="0" frameborder="0" scrolling="no"></iframe></div></div>');
+       -- Veoh
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Veoh', 'http://(?:www\\.)?veoh\\.com/watch/v(?<ID>\\d+[a-zA-Z0-9]+)', '<object width="410" height="341" id="veohFlashPlayer" name="veohFlashPlayer"><param name="movie" value="http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1308&amp;permalinkId=v{$ID}&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.veoh.com/swf/webplayer/WebPlayer.swf?version=AFrontend.5.7.0.1308&amp;permalinkId=v{$ID}&amp;player=videodetailsembedded&amp;videoAutoPlay=0&amp;id=anonymous" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="410" height="341" id="veohFlashPlayerEmbed" name="veohFlashPlayerEmbed"></embed></object>');
+       -- DailyMotion
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('DailyMotion', 'https?://(?:www\\.)?dailymotion\\.com/video/(?<ID>[a-zA-Z0-9]+)', '<iframe frameborder="0" width="480" height="208" src="http://www.dailymotion.com/embed/video/{$ID}"></iframe>');
+       -- YouKu
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('YouKu', 'https?://(?:.+?\\.)?youku\\.com/v_show/id_(?<ID>[a-zA-Z0-9_-]+)(?:\\.html)?', '<iframe height=498 width=510 src="http://player.youku.com/embed/{$ID}" frameborder="0" allowfullscreen></iframe>');
+-- Misc
+       -- github gist
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('github gist', 'https://gist.github.com/(?<ID>[^/]+/[0-9a-zA-Z]+)', '<script src="https://gist.github.com/{$ID}.js"> </script>');
+       -- soundcloud
+       INSERT INTO wcf1_bbcode_media_provider (title, regex, html) VALUES ('Soundcloud', 'https?://soundcloud.com/(?<artist>[a-zA-Z0-9_-]+)/(?<song>[a-zA-Z0-9_-]+)', '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fsoundcloud.com%2F{$artist}%2F{$song}"></iframe>');
+
+-- default priorities
+UPDATE wcf1_user_group SET priority = 10 WHERE groupID = 3;
+UPDATE wcf1_user_group SET priority = 1000 WHERE groupID = 4;
+UPDATE wcf1_user_group SET priority = 50 WHERE groupID = 5;
+UPDATE wcf1_user_group SET priority = 100 WHERE groupID = 6;
+
+-- default 'showOnTeamPage' setting
+UPDATE wcf1_user_group SET showOnTeamPage = 1 WHERE groupID IN (4, 5, 6);
+
+-- default ranks
+INSERT INTO wcf1_user_rank (groupID, requiredPoints, rankTitle, cssClassName) VALUES
+       (4, 0, 'wcf.user.rank.administrator', 'blue'),
+       (5, 0, 'wcf.user.rank.moderator', 'blue'),
+       (6, 0, 'wcf.user.rank.superModerator', 'blue'),
+       (3, 0, 'wcf.user.rank.user0', ''),
+       (3, 300, 'wcf.user.rank.user1', ''),
+       (3, 900, 'wcf.user.rank.user2', ''),
+       (3, 3000, 'wcf.user.rank.user3', ''),
+       (3, 9000, 'wcf.user.rank.user4', ''),
+       (3, 15000, 'wcf.user.rank.user5', '');
\ No newline at end of file