1
difenduandada
2024-10-15 7fd2948ee35c8e147ed35ce6d8502f94a98ddd22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
DROP TABLE IF EXISTS users; 
 
CREATE TABLE users 
  ( 
    id       SMALLINT UNSIGNED NOT NULL auto_increment, 
    username VARCHAR(255) NOT NULL,
    password TEXT NOT NULL, 
    role     VARCHAR(255) NOT NULL,
    join_date DATE NULL DEFAULT NULL,
    birth_date DATE NULL DEFAULT NULL,
    gender varchar(15) NULL DEFAULT NULL,
    data text NULL DEFAULT NULL,
    email varchar(40) NULL DEFAULT NULL,
    bio varchar(180) NULL DEFAULT NULL,
    xp varchar(180) NULL DEFAULT 0,
    avatar varchar(180) NULL DEFAULT 0,
    PRIMARY KEY (id) 
  );
 
DROP TABLE IF EXISTS loginlogs; 
 
CREATE TABLE loginlogs (
    id SMALLINT UNSIGNED NOT NULL auto_increment,
    IpAddress varbinary(16) NOT NULL,
    TryTime bigint(20) NOT NULL,
    PRIMARY KEY (id) 
);
 
DROP TABLE IF EXISTS login_history; 
 
CREATE TABLE login_history (
    id SMALLINT UNSIGNED NOT NULL auto_increment,
    ip varbinary(16) NOT NULL,
    data MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    PRIMARY KEY (id) 
);
 
DROP TABLE IF EXISTS categories; 
 
CREATE TABLE categories 
  ( 
     id          SMALLINT UNSIGNED NOT NULL auto_increment, 
     name        VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     slug     VARCHAR(30) NOT NULL,
     description  MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     meta_description  MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     fields  TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     extra_fields mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     priority smallint(6) NOT NULL DEFAULT '0',
     PRIMARY KEY (id) 
  );
 
DROP TABLE IF EXISTS cat_links; 
 
CREATE TABLE cat_links 
  ( 
     id         SMALLINT UNSIGNED NOT NULL auto_increment, 
     gameid     SMALLINT UNSIGNED NOT NULL,
     categoryid SMALLINT UNSIGNED NOT NULL,
     PRIMARY KEY (id) 
  ); 
 
DROP TABLE IF EXISTS pages; 
 
CREATE TABLE pages 
  ( 
     id          SMALLINT UNSIGNED NOT NULL auto_increment, 
     createddate DATE NOT NULL,
     title       VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     slug        VARCHAR(255) NOT NULL,
     content     MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     nl2br         tinyint(4) NOT NULL DEFAULT '1',
     fields  TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     extra_fields mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     PRIMARY KEY (id) 
  );
 
DROP TABLE IF EXISTS posts; 
 
CREATE TABLE posts 
  ( 
     id          SMALLINT UNSIGNED NOT NULL auto_increment, 
     created_date DATE NOT NULL,
     title       VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     slug        VARCHAR(255) NOT NULL,
     thumbnail_url   VARCHAR(255) NOT NULL,
     content     MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     fields  TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     extra_fields mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     PRIMARY KEY (id) 
  );
 
DROP TABLE IF EXISTS games; 
 
CREATE TABLE games 
     id           SMALLINT UNSIGNED NOT NULL auto_increment, 
     createddate  DATE NOT NULL,
     title        VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     description  MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 
     instructions MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 
     category     TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 
     source       TEXT NOT NULL, 
     thumb_1      VARCHAR(255) NOT NULL,
     thumb_2      VARCHAR(255) NOT NULL,
     thumb_small  VARCHAR(255) NOT NULL,
     url          TEXT NOT NULL, 
     width        TEXT NOT NULL, 
     height       TEXT NOT NULL, 
     tags         TEXT NOT NULL, 
     views        INT NOT NULL, 
     upvote       INT NOT NULL, 
     downvote     INT NOT NULL,
     slug     VARCHAR(255) NOT NULL,
     data MEDIUMTEXT NULL DEFAULT NULL,
     is_mobile TINYINT(1) NOT NULL DEFAULT '1',
     last_modified DATETIME NULL DEFAULT NULL,
     fields  TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     extra_fields mediumtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
     published tinyint(1) NOT NULL DEFAULT '1',
     PRIMARY KEY (id) 
);
 
DROP TABLE IF EXISTS votelogs; 
 
CREATE TABLE votelogs 
    id           SMALLINT UNSIGNED NOT NULL auto_increment, 
    game_id     SMALLINT UNSIGNED NOT NULL,
    ip         varbinary(16) NOT NULL,
    action          TEXT NOT NULL, 
    PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS favorites; 
 
CREATE TABLE favorites 
    id           SMALLINT UNSIGNED NOT NULL auto_increment, 
    game_id     SMALLINT UNSIGNED NOT NULL,
    user_id     SMALLINT UNSIGNED NOT NULL,
    PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS collections; 
 
CREATE TABLE collections 
  ( 
     id          SMALLINT UNSIGNED NOT NULL auto_increment, 
     name        VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     data  MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
     PRIMARY KEY (id) 
  );
 
DROP TABLE IF EXISTS comments;
 
CREATE TABLE comments (
 id int(10) unsigned NOT NULL AUTO_INCREMENT,
 game_id int(10) NOT NULL,
 parent_id int(10) unsigned DEFAULT NULL,
 comment varchar(400) NOT NULL,
 sender_id int(40) NOT NULL,
 sender_username varchar(20) NOT NULL,
 created_date DATETIME NULL DEFAULT NULL,
 approved tinyint(4) NOT NULL DEFAULT '1',
    PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS scores;
 
CREATE TABLE scores 
  ( 
     id          SMALLINT UNSIGNED NOT NULL auto_increment, 
     created_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
     game_id int(40) NOT NULL,
     user_id int(40) NOT NULL,
     score INT(6) UNSIGNED NOT NULL DEFAULT '0',
     PRIMARY KEY (id) 
  );
 
CREATE TABLE IF NOT EXISTS statistics (
 id int(11) unsigned NOT NULL AUTO_INCREMENT,
 created_date date DEFAULT NULL,
 page_views varchar(255) DEFAULT NULL,
 unique_visitor varchar(255) DEFAULT NULL,
 data mediumtext DEFAULT NULL,
 PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS stats_ip_address; 
 
CREATE TABLE stats_ip_address (
 id int(11) unsigned NOT NULL AUTO_INCREMENT,
 ip_address varchar(255) DEFAULT NULL,
 created_date date DEFAULT NULL,
 PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS sessions; 
 
CREATE TABLE sessions (
  token varchar(400) NOT NULL,
  data text NOT NULL
);
 
DROP TABLE IF EXISTS prefs;
 
CREATE TABLE prefs (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) NOT NULL,
  value text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS menus;
 
CREATE TABLE menus (
  id int(11) unsigned NOT NULL AUTO_INCREMENT,
  label varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  url varchar(512) CHARACTER SET utf8 DEFAULT NULL,
  parent_id int(11) DEFAULT NULL,
  name varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS trends;
 
CREATE TABLE trends (
  id int(11) NOT NULL AUTO_INCREMENT,
  game_id int(11) DEFAULT NULL,
  views int(11) NOT NULL,
  created date NOT NULL,
  slug varchar(255) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS tags;
 
CREATE TABLE tags (
  id smallint(11) unsigned NOT NULL AUTO_INCREMENT,
  name varchar(255) CHARACTER SET utf8 DEFAULT NULL,
  usage_count int(11) NOT NULL DEFAULT '0',
  extra_fields varchar(6000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (id)
);
 
DROP TABLE IF EXISTS tag_links;
 
CREATE TABLE tag_links (
  game_id smallint(11) unsigned NOT NULL,
  tag_id smallint(11) unsigned NOT NULL,
  PRIMARY KEY (game_id,tag_id)
);
 
DROP TABLE IF EXISTS settings;
 
CREATE TABLE settings (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  type VARCHAR(255) NOT NULL,
  category VARCHAR(255) NOT NULL,
  label MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  tooltip MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  description MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
  value MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
);
 
DROP TABLE IF EXISTS translations;
 
CREATE TABLE translations
(
    id           INT UNSIGNED NOT NULL AUTO_INCREMENT,
    content_type VARCHAR(50) NOT NULL,  -- e.g., 'game', 'post', 'category'
    content_id   INT UNSIGNED NOT NULL, -- corresponds to the relevant table but not a foreign key
    language     VARCHAR(5) NOT NULL,   -- e.g., 'en', 'fr', etc.
    field        VARCHAR(50) NOT NULL,  -- e.g., 'title', 'description', 'content'
    translation  MEDIUMTEXT NOT NULL,
    PRIMARY KEY (id),
    INDEX idx_translations (content_type, content_id, language, field) -- An index for faster lookups
);
 
DROP TABLE IF EXISTS extra_fields;
 
CREATE TABLE extra_fields
(
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    content_type VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    field_key VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    title VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    type VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    placeholder VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    default_value VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    meta TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
    PRIMARY KEY (id)
);