Release 5.2.13
[GitHub/WoltLab/com.woltlab.wcf.conversation.git] / install.sql
... / ...
CommitLineData
1DROP TABLE IF EXISTS wcf1_conversation;
2CREATE TABLE wcf1_conversation (
3 conversationID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
4 subject VARCHAR(255) NOT NULL DEFAULT '',
5 time INT(10) NOT NULL DEFAULT 0,
6 firstMessageID INT(10),
7 userID INT(10),
8 username VARCHAR(255) NOT NULL DEFAULT '',
9 lastPostTime INT(10) NOT NULL DEFAULT 0,
10 lastPosterID INT(10),
11 lastPoster VARCHAR(255) NOT NULL DEFAULT '',
12 replies MEDIUMINT(7) NOT NULL DEFAULT 0,
13 attachments SMALLINT(5) NOT NULL DEFAULT 0,
14 participants MEDIUMINT(7) NOT NULL DEFAULT 0,
15 participantSummary TEXT,
16 participantCanInvite TINYINT(1) NOT NULL DEFAULT 0,
17 isClosed TINYINT(1) NOT NULL DEFAULT 0,
18 isDraft TINYINT(1) NOT NULL DEFAULT 0,
19 draftData MEDIUMTEXT,
20
21 KEY (userID, isDraft)
22);
23
24DROP TABLE IF EXISTS wcf1_conversation_to_user;
25CREATE TABLE wcf1_conversation_to_user (
26 conversationID INT(10) NOT NULL,
27 participantID INT(10),
28 username VARCHAR(255) NOT NULL DEFAULT '',
29 hideConversation TINYINT(1) NOT NULL DEFAULT 0,
30 isInvisible TINYINT(1) NOT NULL DEFAULT 0,
31 lastVisitTime INT(10) NOT NULL DEFAULT 0,
32 joinedAt INT(10) NOT NULL DEFAULT 0,
33 leftAt INT(10) NOT NULL DEFAULT 0,
34 lastMessageID INT(10) NULL,
35 leftByOwnChoice TINYINT(1) NOT NULL DEFAULT 1,
36
37 UNIQUE KEY (participantID, conversationID),
38 KEY (participantID, hideConversation)
39);
40
41DROP TABLE IF EXISTS wcf1_conversation_message;
42CREATE TABLE wcf1_conversation_message (
43 messageID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
44 conversationID INT(10) NOT NULL,
45 userID INT(10),
46 username VARCHAR(255) NOT NULL DEFAULT '',
47 message MEDIUMTEXT NOT NULL,
48 time INT(10) NOT NULL DEFAULT 0,
49 attachments SMALLINT(5) NOT NULL DEFAULT 0,
50 enableHtml TINYINT(1) NOT NULL DEFAULT 0,
51 ipAddress VARCHAR(39) NOT NULL DEFAULT '',
52 lastEditTime INT(10) NOT NULL DEFAULT 0,
53 editCount MEDIUMINT(7) NOT NULL DEFAULT 0,
54 hasEmbeddedObjects TINYINT(1) NOT NULL DEFAULT 0,
55
56 KEY (conversationID, userID),
57 KEY (ipAddress)
58);
59
60-- labels
61DROP TABLE IF EXISTS wcf1_conversation_label;
62CREATE TABLE wcf1_conversation_label (
63 labelID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
64 userID INT(10) NOT NULL,
65 label VARCHAR(80) NOT NULL DEFAULT '',
66 cssClassName VARCHAR(255) NOT NULL DEFAULT ''
67);
68
69DROP TABLE IF EXISTS wcf1_conversation_label_to_object;
70CREATE TABLE wcf1_conversation_label_to_object (
71 labelID INT(10) NOT NULL,
72 conversationID INT(10) NOT NULL,
73
74 UNIQUE KEY (labelID, conversationID)
75);
76
77ALTER TABLE wcf1_user_group ADD canBeAddedAsConversationParticipant TINYINT(1) NOT NULL DEFAULT 0;
78
79ALTER TABLE wcf1_conversation ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
80ALTER TABLE wcf1_conversation ADD FOREIGN KEY (lastPosterID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
81ALTER TABLE wcf1_conversation ADD FOREIGN KEY (firstMessageID) REFERENCES wcf1_conversation_message (messageID) ON DELETE SET NULL;
82
83ALTER TABLE wcf1_conversation_to_user ADD FOREIGN KEY (conversationID) REFERENCES wcf1_conversation (conversationID) ON DELETE CASCADE;
84ALTER TABLE wcf1_conversation_to_user ADD FOREIGN KEY (participantID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
85ALTER TABLE wcf1_conversation_to_user ADD FOREIGN KEY (lastMessageID) REFERENCES wcf1_conversation_message (messageID) ON DELETE SET NULL;
86
87ALTER TABLE wcf1_conversation_message ADD FOREIGN KEY (conversationID) REFERENCES wcf1_conversation (conversationID) ON DELETE CASCADE;
88ALTER TABLE wcf1_conversation_message ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE SET NULL;
89
90ALTER TABLE wcf1_conversation_label ADD FOREIGN KEY (userID) REFERENCES wcf1_user (userID) ON DELETE CASCADE;
91
92ALTER TABLE wcf1_conversation_label_to_object ADD FOREIGN KEY (labelID) REFERENCES wcf1_conversation_label (labelID) ON DELETE CASCADE;
93ALTER TABLE wcf1_conversation_label_to_object ADD FOREIGN KEY (conversationID) REFERENCES wcf1_conversation (conversationID) ON DELETE CASCADE;