brackets-drizzle-db 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +136 -0
  3. package/dist/db/index.d.ts +7 -0
  4. package/dist/db/index.js +48 -0
  5. package/dist/db/schema/enums.d.ts +12 -0
  6. package/dist/db/schema/enums.js +41 -0
  7. package/dist/db/schema/group.d.ts +65 -0
  8. package/dist/db/schema/group.js +26 -0
  9. package/dist/db/schema/index.d.ts +8 -0
  10. package/dist/db/schema/index.js +26 -0
  11. package/dist/db/schema/match-game.d.ts +267 -0
  12. package/dist/db/schema/match-game.js +81 -0
  13. package/dist/db/schema/match.d.ts +303 -0
  14. package/dist/db/schema/match.js +94 -0
  15. package/dist/db/schema/participant.d.ts +82 -0
  16. package/dist/db/schema/participant.js +27 -0
  17. package/dist/db/schema/round.d.ts +82 -0
  18. package/dist/db/schema/round.js +33 -0
  19. package/dist/db/schema/stage.d.ts +344 -0
  20. package/dist/db/schema/stage.js +72 -0
  21. package/dist/db/schema/tournament.d.ts +115 -0
  22. package/dist/db/schema/tournament.js +25 -0
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.js +19 -0
  25. package/dist/storage-handlers/delete-handlers/group.d.ts +3 -0
  26. package/dist/storage-handlers/delete-handlers/group.js +27 -0
  27. package/dist/storage-handlers/delete-handlers/index.d.ts +7 -0
  28. package/dist/storage-handlers/delete-handlers/index.js +23 -0
  29. package/dist/storage-handlers/delete-handlers/match-game.d.ts +3 -0
  30. package/dist/storage-handlers/delete-handlers/match-game.js +43 -0
  31. package/dist/storage-handlers/delete-handlers/match.d.ts +3 -0
  32. package/dist/storage-handlers/delete-handlers/match.js +45 -0
  33. package/dist/storage-handlers/delete-handlers/participant.d.ts +3 -0
  34. package/dist/storage-handlers/delete-handlers/participant.js +27 -0
  35. package/dist/storage-handlers/delete-handlers/round.d.ts +3 -0
  36. package/dist/storage-handlers/delete-handlers/round.js +29 -0
  37. package/dist/storage-handlers/delete-handlers/stage.d.ts +3 -0
  38. package/dist/storage-handlers/delete-handlers/stage.js +48 -0
  39. package/dist/storage-handlers/delete-handlers/tournament.d.ts +3 -0
  40. package/dist/storage-handlers/delete-handlers/tournament.js +25 -0
  41. package/dist/storage-handlers/delete.d.ts +3 -0
  42. package/dist/storage-handlers/delete.js +24 -0
  43. package/dist/storage-handlers/index.d.ts +4 -0
  44. package/dist/storage-handlers/index.js +20 -0
  45. package/dist/storage-handlers/insert-handlers/group.d.ts +5 -0
  46. package/dist/storage-handlers/insert-handlers/group.js +21 -0
  47. package/dist/storage-handlers/insert-handlers/index.d.ts +7 -0
  48. package/dist/storage-handlers/insert-handlers/index.js +23 -0
  49. package/dist/storage-handlers/insert-handlers/match-game.d.ts +5 -0
  50. package/dist/storage-handlers/insert-handlers/match-game.js +66 -0
  51. package/dist/storage-handlers/insert-handlers/match.d.ts +5 -0
  52. package/dist/storage-handlers/insert-handlers/match.js +66 -0
  53. package/dist/storage-handlers/insert-handlers/participant.d.ts +5 -0
  54. package/dist/storage-handlers/insert-handlers/participant.js +25 -0
  55. package/dist/storage-handlers/insert-handlers/round.d.ts +5 -0
  56. package/dist/storage-handlers/insert-handlers/round.js +21 -0
  57. package/dist/storage-handlers/insert-handlers/stage.d.ts +5 -0
  58. package/dist/storage-handlers/insert-handlers/stage.js +44 -0
  59. package/dist/storage-handlers/insert-handlers/tournament.d.ts +5 -0
  60. package/dist/storage-handlers/insert-handlers/tournament.js +25 -0
  61. package/dist/storage-handlers/insert.d.ts +3 -0
  62. package/dist/storage-handlers/insert.js +25 -0
  63. package/dist/storage-handlers/select-handlers/group.d.ts +3 -0
  64. package/dist/storage-handlers/select-handlers/group.js +44 -0
  65. package/dist/storage-handlers/select-handlers/index.d.ts +7 -0
  66. package/dist/storage-handlers/select-handlers/index.js +23 -0
  67. package/dist/storage-handlers/select-handlers/match-game.d.ts +3 -0
  68. package/dist/storage-handlers/select-handlers/match-game.js +80 -0
  69. package/dist/storage-handlers/select-handlers/match.d.ts +3 -0
  70. package/dist/storage-handlers/select-handlers/match.js +86 -0
  71. package/dist/storage-handlers/select-handlers/participant.d.ts +3 -0
  72. package/dist/storage-handlers/select-handlers/participant.js +40 -0
  73. package/dist/storage-handlers/select-handlers/round.d.ts +3 -0
  74. package/dist/storage-handlers/select-handlers/round.js +46 -0
  75. package/dist/storage-handlers/select-handlers/stage.d.ts +3 -0
  76. package/dist/storage-handlers/select-handlers/stage.js +60 -0
  77. package/dist/storage-handlers/select-handlers/tournament.d.ts +3 -0
  78. package/dist/storage-handlers/select-handlers/tournament.js +38 -0
  79. package/dist/storage-handlers/select.d.ts +3 -0
  80. package/dist/storage-handlers/select.js +24 -0
  81. package/dist/storage-handlers/update-handlers/group.d.ts +3 -0
  82. package/dist/storage-handlers/update-handlers/group.js +33 -0
  83. package/dist/storage-handlers/update-handlers/index.d.ts +7 -0
  84. package/dist/storage-handlers/update-handlers/index.js +23 -0
  85. package/dist/storage-handlers/update-handlers/match-game.d.ts +3 -0
  86. package/dist/storage-handlers/update-handlers/match-game.js +99 -0
  87. package/dist/storage-handlers/update-handlers/match.d.ts +3 -0
  88. package/dist/storage-handlers/update-handlers/match.js +105 -0
  89. package/dist/storage-handlers/update-handlers/participant.d.ts +3 -0
  90. package/dist/storage-handlers/update-handlers/participant.js +40 -0
  91. package/dist/storage-handlers/update-handlers/round.d.ts +3 -0
  92. package/dist/storage-handlers/update-handlers/round.js +37 -0
  93. package/dist/storage-handlers/update-handlers/stage.d.ts +3 -0
  94. package/dist/storage-handlers/update-handlers/stage.js +61 -0
  95. package/dist/storage-handlers/update-handlers/tournament.d.ts +3 -0
  96. package/dist/storage-handlers/update-handlers/tournament.js +40 -0
  97. package/dist/storage-handlers/update.d.ts +3 -0
  98. package/dist/storage-handlers/update.js +24 -0
  99. package/dist/storage.d.ts +18 -0
  100. package/dist/storage.js +25 -0
  101. package/dist/transformers/enum/grand-final-type.d.ts +6 -0
  102. package/dist/transformers/enum/grand-final-type.js +25 -0
  103. package/dist/transformers/enum/index.d.ts +6 -0
  104. package/dist/transformers/enum/index.js +22 -0
  105. package/dist/transformers/enum/match-result.d.ts +6 -0
  106. package/dist/transformers/enum/match-result.js +25 -0
  107. package/dist/transformers/enum/match-status.d.ts +6 -0
  108. package/dist/transformers/enum/match-status.js +38 -0
  109. package/dist/transformers/enum/round-robin-mode.d.ts +6 -0
  110. package/dist/transformers/enum/round-robin-mode.js +21 -0
  111. package/dist/transformers/enum/seed-ordering.d.ts +6 -0
  112. package/dist/transformers/enum/seed-ordering.js +49 -0
  113. package/dist/transformers/enum/stage-type.d.ts +6 -0
  114. package/dist/transformers/enum/stage-type.js +25 -0
  115. package/dist/transformers/index.d.ts +2 -0
  116. package/dist/transformers/index.js +18 -0
  117. package/dist/transformers/model/group.d.ts +15 -0
  118. package/dist/transformers/model/group.js +18 -0
  119. package/dist/transformers/model/index.d.ts +9 -0
  120. package/dist/transformers/model/index.js +25 -0
  121. package/dist/transformers/model/match-game.d.ts +21 -0
  122. package/dist/transformers/model/match-game.js +90 -0
  123. package/dist/transformers/model/match.d.ts +23 -0
  124. package/dist/transformers/model/match.js +96 -0
  125. package/dist/transformers/model/participant-result.d.ts +21 -0
  126. package/dist/transformers/model/participant-result.js +26 -0
  127. package/dist/transformers/model/participant.d.ts +19 -0
  128. package/dist/transformers/model/participant.js +47 -0
  129. package/dist/transformers/model/round.d.ts +17 -0
  130. package/dist/transformers/model/round.js +20 -0
  131. package/dist/transformers/model/stage-settings.d.ts +18 -0
  132. package/dist/transformers/model/stage-settings.js +46 -0
  133. package/dist/transformers/model/stage.d.ts +22 -0
  134. package/dist/transformers/model/stage.js +26 -0
  135. package/dist/transformers/model/tournament.d.ts +30 -0
  136. package/dist/transformers/model/tournament.js +39 -0
  137. package/dist/types.d.ts +15 -0
  138. package/dist/types.js +2 -0
  139. package/package.json +45 -0
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.roundRelations = exports.round = void 0;
4
+ const pg_core_1 = require("drizzle-orm/pg-core");
5
+ const drizzle_orm_1 = require("drizzle-orm");
6
+ const stage_1 = require("./stage");
7
+ const group_1 = require("./group");
8
+ const match_1 = require("./match");
9
+ // A round of a group.
10
+ exports.round = (0, pg_core_1.pgTable)('Round', {
11
+ id: (0, pg_core_1.text)('id').primaryKey(),
12
+ // ID of the parent stage.
13
+ stageId: (0, pg_core_1.text)('stageId')
14
+ .notNull()
15
+ .references(() => stage_1.stage.id),
16
+ // ID of the parent group.
17
+ groupId: (0, pg_core_1.text)('groupId')
18
+ .notNull()
19
+ .references(() => group_1.group.id),
20
+ // The number of the round in its group
21
+ number: (0, pg_core_1.integer)('number').notNull(),
22
+ });
23
+ exports.roundRelations = (0, drizzle_orm_1.relations)(exports.round, ({ one, many }) => ({
24
+ stage: one(stage_1.stage, {
25
+ fields: [exports.round.stageId],
26
+ references: [stage_1.stage.id],
27
+ }),
28
+ group: one(group_1.group, {
29
+ fields: [exports.round.groupId],
30
+ references: [group_1.group.id],
31
+ }),
32
+ matches: many(match_1.match),
33
+ }));
@@ -0,0 +1,344 @@
1
+ export declare const stage: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "Stage";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "Stage";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ tournamentId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "tournamentId";
24
+ tableName: "Stage";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ name: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "name";
41
+ tableName: "Stage";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ type: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "type";
58
+ tableName: "Stage";
59
+ dataType: "string";
60
+ columnType: "PgEnumColumn";
61
+ data: "ROUND_ROBIN" | "SINGLE_ELIMINATION" | "DOUBLE_ELIMINATION";
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: ["ROUND_ROBIN", "SINGLE_ELIMINATION", "DOUBLE_ELIMINATION"];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ number: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "number";
75
+ tableName: "Stage";
76
+ dataType: "number";
77
+ columnType: "PgInteger";
78
+ data: number;
79
+ driverParam: string | number;
80
+ notNull: true;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ };
91
+ dialect: "pg";
92
+ }>;
93
+ export declare const stageRelations: import("drizzle-orm").Relations<"Stage", {
94
+ tournament: import("drizzle-orm").One<"Tournament", true>;
95
+ settings: import("drizzle-orm").One<"StageSettings", true>;
96
+ groups: import("drizzle-orm").Many<"Group">;
97
+ rounds: import("drizzle-orm").Many<"Round">;
98
+ matches: import("drizzle-orm").Many<"Match">;
99
+ matchGames: import("drizzle-orm").Many<"MatchGame">;
100
+ }>;
101
+ export declare const stageSettings: import("drizzle-orm/pg-core").PgTableWithColumns<{
102
+ name: "StageSettings";
103
+ schema: undefined;
104
+ columns: {
105
+ id: import("drizzle-orm/pg-core").PgColumn<{
106
+ name: "id";
107
+ tableName: "StageSettings";
108
+ dataType: "string";
109
+ columnType: "PgText";
110
+ data: string;
111
+ driverParam: string;
112
+ notNull: true;
113
+ hasDefault: false;
114
+ isPrimaryKey: true;
115
+ isAutoincrement: false;
116
+ hasRuntimeDefault: false;
117
+ enumValues: [string, ...string[]];
118
+ baseColumn: never;
119
+ identity: undefined;
120
+ generated: undefined;
121
+ }, {}, {}>;
122
+ stageId: import("drizzle-orm/pg-core").PgColumn<{
123
+ name: "stageId";
124
+ tableName: "StageSettings";
125
+ dataType: "string";
126
+ columnType: "PgText";
127
+ data: string;
128
+ driverParam: string;
129
+ notNull: true;
130
+ hasDefault: false;
131
+ isPrimaryKey: false;
132
+ isAutoincrement: false;
133
+ hasRuntimeDefault: false;
134
+ enumValues: [string, ...string[]];
135
+ baseColumn: never;
136
+ identity: undefined;
137
+ generated: undefined;
138
+ }, {}, {}>;
139
+ size: import("drizzle-orm/pg-core").PgColumn<{
140
+ name: "size";
141
+ tableName: "StageSettings";
142
+ dataType: "number";
143
+ columnType: "PgInteger";
144
+ data: number;
145
+ driverParam: string | number;
146
+ notNull: false;
147
+ hasDefault: false;
148
+ isPrimaryKey: false;
149
+ isAutoincrement: false;
150
+ hasRuntimeDefault: false;
151
+ enumValues: undefined;
152
+ baseColumn: never;
153
+ identity: undefined;
154
+ generated: undefined;
155
+ }, {}, {}>;
156
+ seedOrdering: import("drizzle-orm/pg-core").PgColumn<{
157
+ name: "seedOrdering";
158
+ tableName: "StageSettings";
159
+ dataType: "array";
160
+ columnType: "PgArray";
161
+ data: ("NATURAL" | "REVERSE" | "HALF_SHIFT" | "REVERSE_HALF_SHIFT" | "PAIR_FLIP" | "INNER_OUTER" | "GROUPS_EFFORT_BALANCED" | "GROUPS_SEED_OPTIMIZED" | "GROUPS_BRACKET_OPTIMIZED")[];
162
+ driverParam: string | string[];
163
+ notNull: false;
164
+ hasDefault: false;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: ["NATURAL", "REVERSE", "HALF_SHIFT", "REVERSE_HALF_SHIFT", "PAIR_FLIP", "INNER_OUTER", "GROUPS_EFFORT_BALANCED", "GROUPS_SEED_OPTIMIZED", "GROUPS_BRACKET_OPTIMIZED"];
169
+ baseColumn: import("drizzle-orm").Column<{
170
+ name: "seedOrdering";
171
+ tableName: "StageSettings";
172
+ dataType: "string";
173
+ columnType: "PgEnumColumn";
174
+ data: "NATURAL" | "REVERSE" | "HALF_SHIFT" | "REVERSE_HALF_SHIFT" | "PAIR_FLIP" | "INNER_OUTER" | "GROUPS_EFFORT_BALANCED" | "GROUPS_SEED_OPTIMIZED" | "GROUPS_BRACKET_OPTIMIZED";
175
+ driverParam: string;
176
+ notNull: false;
177
+ hasDefault: false;
178
+ isPrimaryKey: false;
179
+ isAutoincrement: false;
180
+ hasRuntimeDefault: false;
181
+ enumValues: ["NATURAL", "REVERSE", "HALF_SHIFT", "REVERSE_HALF_SHIFT", "PAIR_FLIP", "INNER_OUTER", "GROUPS_EFFORT_BALANCED", "GROUPS_SEED_OPTIMIZED", "GROUPS_BRACKET_OPTIMIZED"];
182
+ baseColumn: never;
183
+ identity: undefined;
184
+ generated: undefined;
185
+ }, {}, {}>;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}, {
189
+ size: undefined;
190
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
191
+ name: "seedOrdering";
192
+ dataType: "string";
193
+ columnType: "PgEnumColumn";
194
+ data: "NATURAL" | "REVERSE" | "HALF_SHIFT" | "REVERSE_HALF_SHIFT" | "PAIR_FLIP" | "INNER_OUTER" | "GROUPS_EFFORT_BALANCED" | "GROUPS_SEED_OPTIMIZED" | "GROUPS_BRACKET_OPTIMIZED";
195
+ enumValues: ["NATURAL", "REVERSE", "HALF_SHIFT", "REVERSE_HALF_SHIFT", "PAIR_FLIP", "INNER_OUTER", "GROUPS_EFFORT_BALANCED", "GROUPS_SEED_OPTIMIZED", "GROUPS_BRACKET_OPTIMIZED"];
196
+ driverParam: string;
197
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
198
+ }>;
199
+ balanceByes: import("drizzle-orm/pg-core").PgColumn<{
200
+ name: "balanceByes";
201
+ tableName: "StageSettings";
202
+ dataType: "boolean";
203
+ columnType: "PgBoolean";
204
+ data: boolean;
205
+ driverParam: boolean;
206
+ notNull: false;
207
+ hasDefault: false;
208
+ isPrimaryKey: false;
209
+ isAutoincrement: false;
210
+ hasRuntimeDefault: false;
211
+ enumValues: undefined;
212
+ baseColumn: never;
213
+ identity: undefined;
214
+ generated: undefined;
215
+ }, {}, {}>;
216
+ matchesChildCount: import("drizzle-orm/pg-core").PgColumn<{
217
+ name: "matchesChildCount";
218
+ tableName: "StageSettings";
219
+ dataType: "number";
220
+ columnType: "PgInteger";
221
+ data: number;
222
+ driverParam: string | number;
223
+ notNull: false;
224
+ hasDefault: false;
225
+ isPrimaryKey: false;
226
+ isAutoincrement: false;
227
+ hasRuntimeDefault: false;
228
+ enumValues: undefined;
229
+ baseColumn: never;
230
+ identity: undefined;
231
+ generated: undefined;
232
+ }, {}, {}>;
233
+ groupCount: import("drizzle-orm/pg-core").PgColumn<{
234
+ name: "groupCount";
235
+ tableName: "StageSettings";
236
+ dataType: "number";
237
+ columnType: "PgInteger";
238
+ data: number;
239
+ driverParam: string | number;
240
+ notNull: false;
241
+ hasDefault: false;
242
+ isPrimaryKey: false;
243
+ isAutoincrement: false;
244
+ hasRuntimeDefault: false;
245
+ enumValues: undefined;
246
+ baseColumn: never;
247
+ identity: undefined;
248
+ generated: undefined;
249
+ }, {}, {}>;
250
+ roundRobinMode: import("drizzle-orm/pg-core").PgColumn<{
251
+ name: "roundRobinMode";
252
+ tableName: "StageSettings";
253
+ dataType: "string";
254
+ columnType: "PgEnumColumn";
255
+ data: "SIMPLE" | "DOUBLE";
256
+ driverParam: string;
257
+ notNull: false;
258
+ hasDefault: false;
259
+ isPrimaryKey: false;
260
+ isAutoincrement: false;
261
+ hasRuntimeDefault: false;
262
+ enumValues: ["SIMPLE", "DOUBLE"];
263
+ baseColumn: never;
264
+ identity: undefined;
265
+ generated: undefined;
266
+ }, {}, {}>;
267
+ manualOrdering: import("drizzle-orm/pg-core").PgColumn<{
268
+ name: "manualOrdering";
269
+ tableName: "StageSettings";
270
+ dataType: "json";
271
+ columnType: "PgJsonb";
272
+ data: unknown;
273
+ driverParam: unknown;
274
+ notNull: false;
275
+ hasDefault: false;
276
+ isPrimaryKey: false;
277
+ isAutoincrement: false;
278
+ hasRuntimeDefault: false;
279
+ enumValues: undefined;
280
+ baseColumn: never;
281
+ identity: undefined;
282
+ generated: undefined;
283
+ }, {}, {}>;
284
+ consolationFinal: import("drizzle-orm/pg-core").PgColumn<{
285
+ name: "consolationFinal";
286
+ tableName: "StageSettings";
287
+ dataType: "boolean";
288
+ columnType: "PgBoolean";
289
+ data: boolean;
290
+ driverParam: boolean;
291
+ notNull: false;
292
+ hasDefault: false;
293
+ isPrimaryKey: false;
294
+ isAutoincrement: false;
295
+ hasRuntimeDefault: false;
296
+ enumValues: undefined;
297
+ baseColumn: never;
298
+ identity: undefined;
299
+ generated: undefined;
300
+ }, {}, {}>;
301
+ skipFirstRound: import("drizzle-orm/pg-core").PgColumn<{
302
+ name: "skipFirstRound";
303
+ tableName: "StageSettings";
304
+ dataType: "boolean";
305
+ columnType: "PgBoolean";
306
+ data: boolean;
307
+ driverParam: boolean;
308
+ notNull: false;
309
+ hasDefault: false;
310
+ isPrimaryKey: false;
311
+ isAutoincrement: false;
312
+ hasRuntimeDefault: false;
313
+ enumValues: undefined;
314
+ baseColumn: never;
315
+ identity: undefined;
316
+ generated: undefined;
317
+ }, {}, {}>;
318
+ grandFinal: import("drizzle-orm/pg-core").PgColumn<{
319
+ name: "grandFinal";
320
+ tableName: "StageSettings";
321
+ dataType: "string";
322
+ columnType: "PgEnumColumn";
323
+ data: "NONE" | "SIMPLE" | "DOUBLE";
324
+ driverParam: string;
325
+ notNull: false;
326
+ hasDefault: false;
327
+ isPrimaryKey: false;
328
+ isAutoincrement: false;
329
+ hasRuntimeDefault: false;
330
+ enumValues: ["NONE", "SIMPLE", "DOUBLE"];
331
+ baseColumn: never;
332
+ identity: undefined;
333
+ generated: undefined;
334
+ }, {}, {}>;
335
+ };
336
+ dialect: "pg";
337
+ }>;
338
+ export declare const stageSettingsRelations: import("drizzle-orm").Relations<"StageSettings", {
339
+ stage: import("drizzle-orm").One<"Stage", true>;
340
+ }>;
341
+ export type Stage = typeof stage.$inferSelect;
342
+ export type NewStage = typeof stage.$inferInsert;
343
+ export type StageSettings = typeof stageSettings.$inferSelect;
344
+ export type NewStageSettings = typeof stageSettings.$inferInsert;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stageSettingsRelations = exports.stageSettings = exports.stageRelations = exports.stage = void 0;
4
+ const pg_core_1 = require("drizzle-orm/pg-core");
5
+ const drizzle_orm_1 = require("drizzle-orm");
6
+ const enums_1 = require("./enums");
7
+ const tournament_1 = require("./tournament");
8
+ const group_1 = require("./group");
9
+ const round_1 = require("./round");
10
+ const match_1 = require("./match");
11
+ const match_game_1 = require("./match-game");
12
+ // A stage, which can be a round-robin stage or a single/double elimination stage.
13
+ exports.stage = (0, pg_core_1.pgTable)('Stage', {
14
+ id: (0, pg_core_1.text)('id').primaryKey(),
15
+ tournamentId: (0, pg_core_1.text)('tournamentId')
16
+ .notNull()
17
+ .references(() => tournament_1.tournament.id),
18
+ // Name of the stage
19
+ name: (0, pg_core_1.text)('name').notNull(),
20
+ // Type of the stage
21
+ type: (0, enums_1.stageTypeEnum)('type').notNull(),
22
+ // The number of the stage in its tournament
23
+ number: (0, pg_core_1.integer)('number').notNull(),
24
+ });
25
+ exports.stageRelations = (0, drizzle_orm_1.relations)(exports.stage, ({ one, many }) => ({
26
+ tournament: one(tournament_1.tournament, {
27
+ fields: [exports.stage.tournamentId],
28
+ references: [tournament_1.tournament.id],
29
+ }),
30
+ settings: one(exports.stageSettings, {
31
+ fields: [exports.stage.id],
32
+ references: [exports.stageSettings.stageId],
33
+ }),
34
+ groups: many(group_1.group),
35
+ rounds: many(round_1.round),
36
+ matches: many(match_1.match),
37
+ matchGames: many(match_game_1.matchGame),
38
+ }));
39
+ // The possible settings for a stage.
40
+ exports.stageSettings = (0, pg_core_1.pgTable)('StageSettings', {
41
+ id: (0, pg_core_1.text)('id').primaryKey(),
42
+ stageId: (0, pg_core_1.text)('stageId')
43
+ .notNull()
44
+ .unique()
45
+ .references(() => exports.stage.id),
46
+ // The number of participants
47
+ size: (0, pg_core_1.integer)('size'),
48
+ // A list of ordering methods to apply to the seeding.
49
+ seedOrdering: (0, enums_1.seedOrderingEnum)('seedOrdering').array(),
50
+ // Whether to balance BYEs in the seeding of an elimination stage.
51
+ balanceByes: (0, pg_core_1.boolean)('balanceByes'),
52
+ // All matches of the stage will have this child count.
53
+ matchesChildCount: (0, pg_core_1.integer)('matchesChildCount'),
54
+ // Number of groups in a round-robin stage.
55
+ groupCount: (0, pg_core_1.integer)('groupCount'),
56
+ // The mode for the round-robin stage.
57
+ roundRobinMode: (0, enums_1.roundRobinModeEnum)('roundRobinMode'),
58
+ // A list of seeds per group for a round-robin stage to be manually ordered.
59
+ manualOrdering: (0, pg_core_1.jsonb)('manualOrdering'),
60
+ // Optional final between semi-final losers.
61
+ consolationFinal: (0, pg_core_1.boolean)('consolationFinal'),
62
+ // Whether to skip the first round of the WB of a double elimination stage.
63
+ skipFirstRound: (0, pg_core_1.boolean)('skipFirstRound'),
64
+ // Optional grand final between WB and LB winners.
65
+ grandFinal: (0, enums_1.grandFinalTypeEnum)('grandFinal'),
66
+ });
67
+ exports.stageSettingsRelations = (0, drizzle_orm_1.relations)(exports.stageSettings, ({ one }) => ({
68
+ stage: one(exports.stage, {
69
+ fields: [exports.stageSettings.stageId],
70
+ references: [exports.stage.id],
71
+ }),
72
+ }));
@@ -0,0 +1,115 @@
1
+ export declare const tournament: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "Tournament";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "Tournament";
8
+ dataType: "string";
9
+ columnType: "PgText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ name: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "name";
24
+ tableName: "Tournament";
25
+ dataType: "string";
26
+ columnType: "PgText";
27
+ data: string;
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ description: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "description";
41
+ tableName: "Tournament";
42
+ dataType: "string";
43
+ columnType: "PgText";
44
+ data: string;
45
+ driverParam: string;
46
+ notNull: false;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: [string, ...string[]];
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ startDate: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "startDate";
58
+ tableName: "Tournament";
59
+ dataType: "date";
60
+ columnType: "PgTimestamp";
61
+ data: Date;
62
+ driverParam: string;
63
+ notNull: false;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: undefined;
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ endDate: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "endDate";
75
+ tableName: "Tournament";
76
+ dataType: "date";
77
+ columnType: "PgTimestamp";
78
+ data: Date;
79
+ driverParam: string;
80
+ notNull: false;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ extra: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "extra";
92
+ tableName: "Tournament";
93
+ dataType: "json";
94
+ columnType: "PgJsonb";
95
+ data: unknown;
96
+ driverParam: unknown;
97
+ notNull: false;
98
+ hasDefault: false;
99
+ isPrimaryKey: false;
100
+ isAutoincrement: false;
101
+ hasRuntimeDefault: false;
102
+ enumValues: undefined;
103
+ baseColumn: never;
104
+ identity: undefined;
105
+ generated: undefined;
106
+ }, {}, {}>;
107
+ };
108
+ dialect: "pg";
109
+ }>;
110
+ export declare const tournamentRelations: import("drizzle-orm").Relations<"Tournament", {
111
+ stages: import("drizzle-orm").Many<"Stage">;
112
+ participants: import("drizzle-orm").Many<"Participant">;
113
+ }>;
114
+ export type Tournament = typeof tournament.$inferSelect;
115
+ export type NewTournament = typeof tournament.$inferInsert;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tournamentRelations = exports.tournament = void 0;
4
+ const pg_core_1 = require("drizzle-orm/pg-core");
5
+ const drizzle_orm_1 = require("drizzle-orm");
6
+ const stage_1 = require("./stage");
7
+ const participant_1 = require("./participant");
8
+ // A tournament that can contain multiple stages and participants.
9
+ exports.tournament = (0, pg_core_1.pgTable)('Tournament', {
10
+ id: (0, pg_core_1.text)('id').primaryKey(),
11
+ // Name of the tournament
12
+ name: (0, pg_core_1.text)('name').notNull(),
13
+ // Description of the tournament
14
+ description: (0, pg_core_1.text)('description'),
15
+ // Start date of the tournament
16
+ startDate: (0, pg_core_1.timestamp)('startDate'),
17
+ // End date of the tournament
18
+ endDate: (0, pg_core_1.timestamp)('endDate'),
19
+ // Additional data for the tournament
20
+ extra: (0, pg_core_1.jsonb)('extra'),
21
+ });
22
+ exports.tournamentRelations = (0, drizzle_orm_1.relations)(exports.tournament, ({ many }) => ({
23
+ stages: many(stage_1.stage),
24
+ participants: many(participant_1.participant),
25
+ }));
@@ -0,0 +1,3 @@
1
+ export * from './storage';
2
+ export * from './db';
3
+ export * from './db/schema';
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./storage"), exports);
18
+ __exportStar(require("./db"), exports);
19
+ __exportStar(require("./db/schema"), exports);
@@ -0,0 +1,3 @@
1
+ import { DataTypes } from 'brackets-manager/dist/types';
2
+ import type { DrizzleDatabase } from '../../db';
3
+ export declare function handleGroupDelete(db: DrizzleDatabase, filter?: Partial<DataTypes['group']>): Promise<boolean>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleGroupDelete = handleGroupDelete;
4
+ const schema_1 = require("../../db/schema");
5
+ const drizzle_orm_1 = require("drizzle-orm");
6
+ async function handleGroupDelete(db, filter) {
7
+ try {
8
+ if (!filter) {
9
+ await db.delete(schema_1.group);
10
+ return true;
11
+ }
12
+ const conditions = [];
13
+ if (filter.id !== undefined)
14
+ conditions.push((0, drizzle_orm_1.eq)(schema_1.group.id, String(filter.id)));
15
+ if (filter.stage_id !== undefined)
16
+ conditions.push((0, drizzle_orm_1.eq)(schema_1.group.stageId, String(filter.stage_id)));
17
+ if (filter.number !== undefined)
18
+ conditions.push((0, drizzle_orm_1.eq)(schema_1.group.number, filter.number));
19
+ await db
20
+ .delete(schema_1.group)
21
+ .where(conditions.length > 0 ? (0, drizzle_orm_1.and)(...conditions) : undefined);
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
@@ -0,0 +1,7 @@
1
+ export * from './group';
2
+ export * from './match';
3
+ export * from './match-game';
4
+ export * from './participant';
5
+ export * from './round';
6
+ export * from './stage';
7
+ export * from './tournament';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./group"), exports);
18
+ __exportStar(require("./match"), exports);
19
+ __exportStar(require("./match-game"), exports);
20
+ __exportStar(require("./participant"), exports);
21
+ __exportStar(require("./round"), exports);
22
+ __exportStar(require("./stage"), exports);
23
+ __exportStar(require("./tournament"), exports);