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
package/README.md ADDED
@@ -0,0 +1,136 @@
1
+ # brackets-drizzle-db
2
+
3
+ This implementation of the [`CrudInterface`](https://drarig29.github.io/brackets-docs/reference/manager/interfaces/CrudInterface.html)
4
+ uses [Drizzle ORM](https://orm.drizzle.team/) to store the data in a PostgreSQL database.
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ pnpm add brackets-drizzle-db
10
+ ```
11
+
12
+ ## Usage
13
+
14
+ ### Basic Setup
15
+
16
+ ```typescript
17
+ import { SqlDatabase, createDatabase } from 'brackets-drizzle-db';
18
+ import { BracketsManager } from 'brackets-manager';
19
+
20
+ // Create the Drizzle database instance
21
+ const db = createDatabase(process.env.DATABASE_URL!);
22
+
23
+ const storage = new SqlDatabase(db);
24
+ const manager = new BracketsManager(storage);
25
+ ```
26
+
27
+ ### Integrating with Your Drizzle Schema
28
+
29
+ If you already have a Drizzle project, you can import the schema definitions and include them in your own schema:
30
+
31
+ ```typescript
32
+ // In your drizzle schema file
33
+ import * as bracketsSchema from 'brackets-drizzle-db';
34
+
35
+ // Export alongside your own schema
36
+ export * from './your-tables';
37
+ export { bracketsSchema };
38
+ ```
39
+
40
+ Then in your drizzle config, make sure to include the brackets schema:
41
+
42
+ ```typescript
43
+ // drizzle.config.ts
44
+ import { defineConfig } from 'drizzle-kit';
45
+
46
+ export default defineConfig({
47
+ schema: ['./src/db/schema.ts', './node_modules/brackets-drizzle-db/dist/db/schema/index.js'],
48
+ out: './drizzle',
49
+ dialect: 'postgresql',
50
+ dbCredentials: {
51
+ url: process.env.DATABASE_URL!,
52
+ },
53
+ });
54
+ ```
55
+
56
+ ### Using with an Existing Drizzle Instance
57
+
58
+ If you already have a Drizzle database instance:
59
+
60
+ ```typescript
61
+ import { SqlDatabase } from 'brackets-drizzle-db';
62
+ import { BracketsManager } from 'brackets-manager';
63
+ import { db } from './your-db-setup';
64
+
65
+ const storage = new SqlDatabase(db);
66
+ const manager = new BracketsManager(storage);
67
+ ```
68
+
69
+ ### Example with Custom Match Data
70
+
71
+ ```typescript
72
+ import { SqlDatabase, createDatabase } from 'brackets-drizzle-db';
73
+ import { BracketsManager } from 'brackets-manager';
74
+ import type { Match } from 'brackets-model';
75
+
76
+ type MatchWithWeather = Match & {
77
+ // The schema defines a JSON column named `extra` in the `Match` and `MatchGame` tables.
78
+ // Anything you put in the `extra` object will be stored in that column.
79
+ extra: {
80
+ weather: 'sunny' | 'rainy' | 'cloudy' | 'snowy';
81
+ };
82
+ };
83
+
84
+ const db = createDatabase(process.env.DATABASE_URL!);
85
+ const storage = new SqlDatabase(db);
86
+ const manager = new BracketsManager(storage);
87
+
88
+ const stage = await manager.create.stage({
89
+ tournamentId: 1,
90
+ name: 'Example',
91
+ type: 'single_elimination',
92
+ seeding: [
93
+ { name: 'Team 1' },
94
+ { name: 'Team 2' },
95
+ { name: 'Team 3' },
96
+ { name: 'Team 4' },
97
+ ],
98
+ });
99
+
100
+ const currentMatches = await manager.get.currentMatches(stage.id);
101
+
102
+ await manager.update.match<MatchWithWeather>({
103
+ id: currentMatches[0].id,
104
+ opponent1: { score: 6, result: 'win' },
105
+ opponent2: { score: 3, result: 'loss' },
106
+ extra: {
107
+ weather: 'sunny',
108
+ },
109
+ });
110
+ ```
111
+
112
+ ## Schema
113
+
114
+ The package exports all Drizzle schema definitions for use in your project:
115
+
116
+ ```typescript
117
+ import {
118
+ // Tables
119
+ participant,
120
+ stage,
121
+ stageSettings,
122
+ group,
123
+ round,
124
+ match,
125
+ matchGame,
126
+ participantMatchResult,
127
+ participantMatchGameResult,
128
+ // Enums
129
+ stageTypeEnum,
130
+ grandFinalTypeEnum,
131
+ roundRobinModeEnum,
132
+ seedOrderingEnum,
133
+ matchResultEnum,
134
+ matchStatusEnum,
135
+ } from 'brackets-drizzle-db';
136
+ ```
@@ -0,0 +1,7 @@
1
+ import postgres from 'postgres';
2
+ import * as schema from './schema';
3
+ export type DrizzleDatabase = ReturnType<typeof createDatabase>;
4
+ export declare function createDatabase(connectionString: string): import("drizzle-orm/postgres-js").PostgresJsDatabase<typeof schema> & {
5
+ $client: postgres.Sql<{}>;
6
+ };
7
+ export { schema };
@@ -0,0 +1,48 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.schema = void 0;
40
+ exports.createDatabase = createDatabase;
41
+ const postgres_js_1 = require("drizzle-orm/postgres-js");
42
+ const postgres_1 = __importDefault(require("postgres"));
43
+ const schema = __importStar(require("./schema"));
44
+ exports.schema = schema;
45
+ function createDatabase(connectionString) {
46
+ const client = (0, postgres_1.default)(connectionString);
47
+ return (0, postgres_js_1.drizzle)(client, { schema });
48
+ }
@@ -0,0 +1,12 @@
1
+ export declare const stageTypeEnum: import("drizzle-orm/pg-core").PgEnum<["ROUND_ROBIN", "SINGLE_ELIMINATION", "DOUBLE_ELIMINATION"]>;
2
+ export declare const grandFinalTypeEnum: import("drizzle-orm/pg-core").PgEnum<["NONE", "SIMPLE", "DOUBLE"]>;
3
+ export declare const roundRobinModeEnum: import("drizzle-orm/pg-core").PgEnum<["SIMPLE", "DOUBLE"]>;
4
+ export declare const seedOrderingEnum: import("drizzle-orm/pg-core").PgEnum<["NATURAL", "REVERSE", "HALF_SHIFT", "REVERSE_HALF_SHIFT", "PAIR_FLIP", "INNER_OUTER", "GROUPS_EFFORT_BALANCED", "GROUPS_SEED_OPTIMIZED", "GROUPS_BRACKET_OPTIMIZED"]>;
5
+ export declare const matchResultEnum: import("drizzle-orm/pg-core").PgEnum<["WIN", "DRAW", "LOSS"]>;
6
+ export declare const matchStatusEnum: import("drizzle-orm/pg-core").PgEnum<["LOCKED", "WAITING", "READY", "RUNNING", "COMPLETED", "ARCHIVED"]>;
7
+ export type StageType = (typeof stageTypeEnum.enumValues)[number];
8
+ export type GrandFinalType = (typeof grandFinalTypeEnum.enumValues)[number];
9
+ export type RoundRobinMode = (typeof roundRobinModeEnum.enumValues)[number];
10
+ export type SeedOrdering = (typeof seedOrderingEnum.enumValues)[number];
11
+ export type MatchResult = (typeof matchResultEnum.enumValues)[number];
12
+ export type MatchStatus = (typeof matchStatusEnum.enumValues)[number];
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchStatusEnum = exports.matchResultEnum = exports.seedOrderingEnum = exports.roundRobinModeEnum = exports.grandFinalTypeEnum = exports.stageTypeEnum = void 0;
4
+ const pg_core_1 = require("drizzle-orm/pg-core");
5
+ // The only supported types of stage.
6
+ exports.stageTypeEnum = (0, pg_core_1.pgEnum)('StageType', [
7
+ 'ROUND_ROBIN',
8
+ 'SINGLE_ELIMINATION',
9
+ 'DOUBLE_ELIMINATION',
10
+ ]);
11
+ // The possible types for a double elimination stage's grand final.
12
+ exports.grandFinalTypeEnum = (0, pg_core_1.pgEnum)('GrandFinalType', [
13
+ 'NONE',
14
+ 'SIMPLE',
15
+ 'DOUBLE',
16
+ ]);
17
+ // The possible modes for a round-robin stage.
18
+ exports.roundRobinModeEnum = (0, pg_core_1.pgEnum)('RoundRobinMode', ['SIMPLE', 'DOUBLE']);
19
+ // Used to order seeds.
20
+ exports.seedOrderingEnum = (0, pg_core_1.pgEnum)('SeedOrdering', [
21
+ 'NATURAL',
22
+ 'REVERSE',
23
+ 'HALF_SHIFT',
24
+ 'REVERSE_HALF_SHIFT',
25
+ 'PAIR_FLIP',
26
+ 'INNER_OUTER',
27
+ 'GROUPS_EFFORT_BALANCED',
28
+ 'GROUPS_SEED_OPTIMIZED',
29
+ 'GROUPS_BRACKET_OPTIMIZED',
30
+ ]);
31
+ // The possible results of a duel for a participant.
32
+ exports.matchResultEnum = (0, pg_core_1.pgEnum)('MatchResult', ['WIN', 'DRAW', 'LOSS']);
33
+ // The possible status for a match.
34
+ exports.matchStatusEnum = (0, pg_core_1.pgEnum)('MatchStatus', [
35
+ 'LOCKED',
36
+ 'WAITING',
37
+ 'READY',
38
+ 'RUNNING',
39
+ 'COMPLETED',
40
+ 'ARCHIVED',
41
+ ]);
@@ -0,0 +1,65 @@
1
+ export declare const group: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "Group";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "Group";
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
+ stageId: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "stageId";
24
+ tableName: "Group";
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
+ number: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "number";
41
+ tableName: "Group";
42
+ dataType: "number";
43
+ columnType: "PgInteger";
44
+ data: number;
45
+ driverParam: string | number;
46
+ notNull: true;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: undefined;
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ };
57
+ dialect: "pg";
58
+ }>;
59
+ export declare const groupRelations: import("drizzle-orm").Relations<"Group", {
60
+ stage: import("drizzle-orm").One<"Stage", true>;
61
+ rounds: import("drizzle-orm").Many<"Round">;
62
+ matches: import("drizzle-orm").Many<"Match">;
63
+ }>;
64
+ export type Group = typeof group.$inferSelect;
65
+ export type NewGroup = typeof group.$inferInsert;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.groupRelations = exports.group = 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 round_1 = require("./round");
8
+ const match_1 = require("./match");
9
+ // A group of a stage.
10
+ exports.group = (0, pg_core_1.pgTable)('Group', {
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
+ // The number of the group in its stage
17
+ number: (0, pg_core_1.integer)('number').notNull(),
18
+ });
19
+ exports.groupRelations = (0, drizzle_orm_1.relations)(exports.group, ({ one, many }) => ({
20
+ stage: one(stage_1.stage, {
21
+ fields: [exports.group.stageId],
22
+ references: [stage_1.stage.id],
23
+ }),
24
+ rounds: many(round_1.round),
25
+ matches: many(match_1.match),
26
+ }));
@@ -0,0 +1,8 @@
1
+ export * from './enums';
2
+ export * from './tournament';
3
+ export * from './participant';
4
+ export * from './stage';
5
+ export * from './group';
6
+ export * from './round';
7
+ export * from './match';
8
+ export * from './match-game';
@@ -0,0 +1,26 @@
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
+ // Enums
18
+ __exportStar(require("./enums"), exports);
19
+ // Tables and relations
20
+ __exportStar(require("./tournament"), exports);
21
+ __exportStar(require("./participant"), exports);
22
+ __exportStar(require("./stage"), exports);
23
+ __exportStar(require("./group"), exports);
24
+ __exportStar(require("./round"), exports);
25
+ __exportStar(require("./match"), exports);
26
+ __exportStar(require("./match-game"), exports);
@@ -0,0 +1,267 @@
1
+ export declare const matchGame: import("drizzle-orm/pg-core").PgTableWithColumns<{
2
+ name: "MatchGame";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/pg-core").PgColumn<{
6
+ name: "id";
7
+ tableName: "MatchGame";
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
+ status: import("drizzle-orm/pg-core").PgColumn<{
23
+ name: "status";
24
+ tableName: "MatchGame";
25
+ dataType: "string";
26
+ columnType: "PgEnumColumn";
27
+ data: "LOCKED" | "WAITING" | "READY" | "RUNNING" | "COMPLETED" | "ARCHIVED";
28
+ driverParam: string;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: ["LOCKED", "WAITING", "READY", "RUNNING", "COMPLETED", "ARCHIVED"];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ extra: import("drizzle-orm/pg-core").PgColumn<{
40
+ name: "extra";
41
+ tableName: "MatchGame";
42
+ dataType: "json";
43
+ columnType: "PgJsonb";
44
+ data: unknown;
45
+ driverParam: unknown;
46
+ notNull: false;
47
+ hasDefault: false;
48
+ isPrimaryKey: false;
49
+ isAutoincrement: false;
50
+ hasRuntimeDefault: false;
51
+ enumValues: undefined;
52
+ baseColumn: never;
53
+ identity: undefined;
54
+ generated: undefined;
55
+ }, {}, {}>;
56
+ stageId: import("drizzle-orm/pg-core").PgColumn<{
57
+ name: "stageId";
58
+ tableName: "MatchGame";
59
+ dataType: "string";
60
+ columnType: "PgText";
61
+ data: string;
62
+ driverParam: string;
63
+ notNull: true;
64
+ hasDefault: false;
65
+ isPrimaryKey: false;
66
+ isAutoincrement: false;
67
+ hasRuntimeDefault: false;
68
+ enumValues: [string, ...string[]];
69
+ baseColumn: never;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }, {}, {}>;
73
+ matchId: import("drizzle-orm/pg-core").PgColumn<{
74
+ name: "matchId";
75
+ tableName: "MatchGame";
76
+ dataType: "string";
77
+ columnType: "PgText";
78
+ data: string;
79
+ driverParam: string;
80
+ notNull: true;
81
+ hasDefault: false;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: [string, ...string[]];
86
+ baseColumn: never;
87
+ identity: undefined;
88
+ generated: undefined;
89
+ }, {}, {}>;
90
+ number: import("drizzle-orm/pg-core").PgColumn<{
91
+ name: "number";
92
+ tableName: "MatchGame";
93
+ dataType: "number";
94
+ columnType: "PgInteger";
95
+ data: number;
96
+ driverParam: string | number;
97
+ notNull: true;
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 matchGameRelations: import("drizzle-orm").Relations<"MatchGame", {
111
+ stage: import("drizzle-orm").One<"Stage", true>;
112
+ match: import("drizzle-orm").One<"Match", true>;
113
+ opponent1Result: import("drizzle-orm").One<"ParticipantMatchGameResult", true>;
114
+ opponent2Result: import("drizzle-orm").One<"ParticipantMatchGameResult", true>;
115
+ }>;
116
+ export declare const participantMatchGameResult: import("drizzle-orm/pg-core").PgTableWithColumns<{
117
+ name: "ParticipantMatchGameResult";
118
+ schema: undefined;
119
+ columns: {
120
+ id: import("drizzle-orm/pg-core").PgColumn<{
121
+ name: "id";
122
+ tableName: "ParticipantMatchGameResult";
123
+ dataType: "string";
124
+ columnType: "PgText";
125
+ data: string;
126
+ driverParam: string;
127
+ notNull: true;
128
+ hasDefault: false;
129
+ isPrimaryKey: true;
130
+ isAutoincrement: false;
131
+ hasRuntimeDefault: false;
132
+ enumValues: [string, ...string[]];
133
+ baseColumn: never;
134
+ identity: undefined;
135
+ generated: undefined;
136
+ }, {}, {}>;
137
+ participantId: import("drizzle-orm/pg-core").PgColumn<{
138
+ name: "participantId";
139
+ tableName: "ParticipantMatchGameResult";
140
+ dataType: "string";
141
+ columnType: "PgText";
142
+ data: string;
143
+ driverParam: string;
144
+ notNull: false;
145
+ hasDefault: false;
146
+ isPrimaryKey: false;
147
+ isAutoincrement: false;
148
+ hasRuntimeDefault: false;
149
+ enumValues: [string, ...string[]];
150
+ baseColumn: never;
151
+ identity: undefined;
152
+ generated: undefined;
153
+ }, {}, {}>;
154
+ position: import("drizzle-orm/pg-core").PgColumn<{
155
+ name: "position";
156
+ tableName: "ParticipantMatchGameResult";
157
+ dataType: "number";
158
+ columnType: "PgInteger";
159
+ data: number;
160
+ driverParam: string | number;
161
+ notNull: false;
162
+ hasDefault: false;
163
+ isPrimaryKey: false;
164
+ isAutoincrement: false;
165
+ hasRuntimeDefault: false;
166
+ enumValues: undefined;
167
+ baseColumn: never;
168
+ identity: undefined;
169
+ generated: undefined;
170
+ }, {}, {}>;
171
+ forfeit: import("drizzle-orm/pg-core").PgColumn<{
172
+ name: "forfeit";
173
+ tableName: "ParticipantMatchGameResult";
174
+ dataType: "boolean";
175
+ columnType: "PgBoolean";
176
+ data: boolean;
177
+ driverParam: boolean;
178
+ notNull: false;
179
+ hasDefault: false;
180
+ isPrimaryKey: false;
181
+ isAutoincrement: false;
182
+ hasRuntimeDefault: false;
183
+ enumValues: undefined;
184
+ baseColumn: never;
185
+ identity: undefined;
186
+ generated: undefined;
187
+ }, {}, {}>;
188
+ score: import("drizzle-orm/pg-core").PgColumn<{
189
+ name: "score";
190
+ tableName: "ParticipantMatchGameResult";
191
+ dataType: "number";
192
+ columnType: "PgInteger";
193
+ data: number;
194
+ driverParam: string | number;
195
+ notNull: false;
196
+ hasDefault: false;
197
+ isPrimaryKey: false;
198
+ isAutoincrement: false;
199
+ hasRuntimeDefault: false;
200
+ enumValues: undefined;
201
+ baseColumn: never;
202
+ identity: undefined;
203
+ generated: undefined;
204
+ }, {}, {}>;
205
+ result: import("drizzle-orm/pg-core").PgColumn<{
206
+ name: "result";
207
+ tableName: "ParticipantMatchGameResult";
208
+ dataType: "string";
209
+ columnType: "PgEnumColumn";
210
+ data: "WIN" | "DRAW" | "LOSS";
211
+ driverParam: string;
212
+ notNull: false;
213
+ hasDefault: false;
214
+ isPrimaryKey: false;
215
+ isAutoincrement: false;
216
+ hasRuntimeDefault: false;
217
+ enumValues: ["WIN", "DRAW", "LOSS"];
218
+ baseColumn: never;
219
+ identity: undefined;
220
+ generated: undefined;
221
+ }, {}, {}>;
222
+ opponent1MatchGameId: import("drizzle-orm/pg-core").PgColumn<{
223
+ name: "opponent1MatchGameId";
224
+ tableName: "ParticipantMatchGameResult";
225
+ dataType: "string";
226
+ columnType: "PgText";
227
+ data: string;
228
+ driverParam: string;
229
+ notNull: false;
230
+ hasDefault: false;
231
+ isPrimaryKey: false;
232
+ isAutoincrement: false;
233
+ hasRuntimeDefault: false;
234
+ enumValues: [string, ...string[]];
235
+ baseColumn: never;
236
+ identity: undefined;
237
+ generated: undefined;
238
+ }, {}, {}>;
239
+ opponent2MatchGameId: import("drizzle-orm/pg-core").PgColumn<{
240
+ name: "opponent2MatchGameId";
241
+ tableName: "ParticipantMatchGameResult";
242
+ dataType: "string";
243
+ columnType: "PgText";
244
+ data: string;
245
+ driverParam: string;
246
+ notNull: false;
247
+ hasDefault: false;
248
+ isPrimaryKey: false;
249
+ isAutoincrement: false;
250
+ hasRuntimeDefault: false;
251
+ enumValues: [string, ...string[]];
252
+ baseColumn: never;
253
+ identity: undefined;
254
+ generated: undefined;
255
+ }, {}, {}>;
256
+ };
257
+ dialect: "pg";
258
+ }>;
259
+ export declare const participantMatchGameResultRelations: import("drizzle-orm").Relations<"ParticipantMatchGameResult", {
260
+ participant: import("drizzle-orm").One<"Participant", false>;
261
+ opponent1MatchGame: import("drizzle-orm").One<"MatchGame", false>;
262
+ opponent2MatchGame: import("drizzle-orm").One<"MatchGame", false>;
263
+ }>;
264
+ export type MatchGame = typeof matchGame.$inferSelect;
265
+ export type NewMatchGame = typeof matchGame.$inferInsert;
266
+ export type ParticipantMatchGameResult = typeof participantMatchGameResult.$inferSelect;
267
+ export type NewParticipantMatchGameResult = typeof participantMatchGameResult.$inferInsert;