()
| 218 | } |
| 219 | |
| 220 | async createTables() { |
| 221 | const tables = [ |
| 222 | `CREATE TABLE IF NOT EXISTS ${pgConfig.tables.guilds} ( |
| 223 | id VARCHAR(20) PRIMARY KEY, |
| 224 | config JSONB DEFAULT '{}', |
| 225 | counters JSONB DEFAULT '[]', |
| 226 | created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 227 | updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| 228 | )`, |
| 229 | |
| 230 | `CREATE TABLE IF NOT EXISTS ${pgConfig.tables.users} ( |
| 231 | id VARCHAR(20) PRIMARY KEY, |
| 232 | username VARCHAR(100), |
| 233 | discriminator VARCHAR(10), |
| 234 | avatar VARCHAR(100), |
| 235 | created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 236 | updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP |
| 237 | )`, |
| 238 | |
| 239 | `CREATE TABLE IF NOT EXISTS ${pgConfig.tables.guild_users} ( |
| 240 | guild_id VARCHAR(20), |
| 241 | user_id VARCHAR(20), |
| 242 | joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 243 | updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 244 | PRIMARY KEY (guild_id, user_id), |
| 245 | FOREIGN KEY (guild_id) REFERENCES ${pgConfig.tables.guilds}(id) ON DELETE CASCADE, |
| 246 | FOREIGN KEY (user_id) REFERENCES ${pgConfig.tables.users}(id) ON DELETE CASCADE |
| 247 | )`, |
| 248 | |
| 249 | `CREATE TABLE IF NOT EXISTS ${pgConfig.tables.birthdays} ( |
| 250 | guild_id VARCHAR(20), |
| 251 | user_id VARCHAR(20), |
| 252 | month INTEGER NOT NULL, |
| 253 | day INTEGER NOT NULL, |
| 254 | created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 255 | updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 256 | PRIMARY KEY (guild_id, user_id), |
| 257 | FOREIGN KEY (guild_id) REFERENCES ${pgConfig.tables.guilds}(id) ON DELETE CASCADE, |
| 258 | FOREIGN KEY (user_id) REFERENCES ${pgConfig.tables.users}(id) ON DELETE CASCADE |
| 259 | )`, |
| 260 | |
| 261 | `CREATE TABLE IF NOT EXISTS ${pgConfig.tables.giveaways} ( |
| 262 | id SERIAL PRIMARY KEY, |
| 263 | guild_id VARCHAR(20), |
| 264 | message_id VARCHAR(20) NOT NULL, |
| 265 | data JSONB NOT NULL, |
| 266 | ends_at TIMESTAMP, |
| 267 | created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 268 | updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
| 269 | FOREIGN KEY (guild_id) REFERENCES ${pgConfig.tables.guilds}(id) ON DELETE CASCADE, |
| 270 | UNIQUE(guild_id, message_id) |
| 271 | )`, |
| 272 | |
| 273 | `CREATE TABLE IF NOT EXISTS ${pgConfig.tables.tickets} ( |
| 274 | guild_id VARCHAR(20), |
| 275 | channel_id VARCHAR(20) PRIMARY KEY, |
| 276 | data JSONB NOT NULL, |
| 277 | created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, |
no test coverage detected