@opprs/db-prisma 2.2.0 → 2.2.1-canary.2ae1e14
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.
- package/dist/index.cjs +136 -3
- package/dist/index.d.cts +144 -11
- package/dist/index.d.ts +144 -11
- package/dist/index.js +124 -3
- package/package.json +3 -3
- package/prisma/migrations/20260104000000_add_player_number/migration.sql +23 -0
- package/prisma/migrations/20260104092800_add_location_model_and_tournament_fields/migration.sql +45 -0
- package/prisma/schema.prisma +37 -3
- package/prisma/seed.ts +112 -16
package/dist/index.cjs
CHANGED
|
@@ -21,24 +21,31 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
23
|
connect: () => connect,
|
|
24
|
+
countLocations: () => countLocations,
|
|
24
25
|
countPlayers: () => countPlayers,
|
|
25
26
|
countResults: () => countResults,
|
|
26
27
|
countTournaments: () => countTournaments,
|
|
27
28
|
countUsers: () => countUsers,
|
|
29
|
+
createLocation: () => createLocation,
|
|
28
30
|
createManyResults: () => createManyResults,
|
|
29
31
|
createPlayer: () => createPlayer,
|
|
30
32
|
createResult: () => createResult,
|
|
31
33
|
createTournament: () => createTournament,
|
|
32
34
|
createUser: () => createUser,
|
|
33
35
|
createUserWithPlayer: () => createUserWithPlayer,
|
|
36
|
+
deleteLocation: () => deleteLocation,
|
|
34
37
|
deletePlayer: () => deletePlayer,
|
|
35
38
|
deleteResult: () => deleteResult,
|
|
36
39
|
deleteResultsByTournament: () => deleteResultsByTournament,
|
|
37
40
|
deleteTournament: () => deleteTournament,
|
|
38
41
|
deleteUser: () => deleteUser,
|
|
39
42
|
disconnect: () => disconnect,
|
|
43
|
+
findLocationByExternalId: () => findLocationByExternalId,
|
|
44
|
+
findLocationById: () => findLocationById,
|
|
45
|
+
findLocations: () => findLocations,
|
|
40
46
|
findPlayerByExternalId: () => findPlayerByExternalId,
|
|
41
47
|
findPlayerById: () => findPlayerById,
|
|
48
|
+
findPlayerByPlayerNumber: () => findPlayerByPlayerNumber,
|
|
42
49
|
findPlayerByUserEmail: () => findPlayerByUserEmail,
|
|
43
50
|
findPlayers: () => findPlayers,
|
|
44
51
|
findResultById: () => findResultById,
|
|
@@ -50,6 +57,8 @@ __export(index_exports, {
|
|
|
50
57
|
findUserByEmail: () => findUserByEmail,
|
|
51
58
|
findUserById: () => findUserById,
|
|
52
59
|
findUsers: () => findUsers,
|
|
60
|
+
generateUniquePlayerNumber: () => generateUniquePlayerNumber,
|
|
61
|
+
getLocationWithTournaments: () => getLocationWithTournaments,
|
|
53
62
|
getMajorTournaments: () => getMajorTournaments,
|
|
54
63
|
getPlayerResults: () => getPlayerResults,
|
|
55
64
|
getPlayerStats: () => getPlayerStats,
|
|
@@ -66,12 +75,15 @@ __export(index_exports, {
|
|
|
66
75
|
getTournamentsByDateRange: () => getTournamentsByDateRange,
|
|
67
76
|
getUserByEmailWithPlayer: () => getUserByEmailWithPlayer,
|
|
68
77
|
getUserWithPlayer: () => getUserWithPlayer,
|
|
78
|
+
isValidPlayerNumber: () => isValidPlayerNumber,
|
|
69
79
|
linkPlayerToUser: () => linkPlayerToUser,
|
|
70
80
|
prisma: () => prisma,
|
|
71
81
|
recalculateTimeDecay: () => recalculateTimeDecay,
|
|
82
|
+
searchLocations: () => searchLocations,
|
|
72
83
|
searchPlayers: () => searchPlayers,
|
|
73
84
|
searchTournaments: () => searchTournaments,
|
|
74
85
|
testConnection: () => testConnection,
|
|
86
|
+
updateLocation: () => updateLocation,
|
|
75
87
|
updatePlayer: () => updatePlayer,
|
|
76
88
|
updatePlayerRating: () => updatePlayerRating,
|
|
77
89
|
updateResult: () => updateResult,
|
|
@@ -107,10 +119,40 @@ async function testConnection() {
|
|
|
107
119
|
}
|
|
108
120
|
}
|
|
109
121
|
|
|
122
|
+
// src/player-number.ts
|
|
123
|
+
var MIN_PLAYER_NUMBER = 1e4;
|
|
124
|
+
var MAX_PLAYER_NUMBER = 99999;
|
|
125
|
+
var MAX_RETRIES = 10;
|
|
126
|
+
function generateRandomPlayerNumber() {
|
|
127
|
+
return Math.floor(Math.random() * (MAX_PLAYER_NUMBER - MIN_PLAYER_NUMBER + 1)) + MIN_PLAYER_NUMBER;
|
|
128
|
+
}
|
|
129
|
+
async function generateUniquePlayerNumber() {
|
|
130
|
+
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|
|
131
|
+
const candidate = generateRandomPlayerNumber();
|
|
132
|
+
const existing = await prisma.player.findUnique({
|
|
133
|
+
where: { playerNumber: candidate },
|
|
134
|
+
select: { id: true }
|
|
135
|
+
});
|
|
136
|
+
if (!existing) {
|
|
137
|
+
return candidate;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
throw new Error(
|
|
141
|
+
`Failed to generate unique player number after ${MAX_RETRIES} attempts. Consider increasing the number range or implementing a different allocation strategy.`
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
function isValidPlayerNumber(playerNumber) {
|
|
145
|
+
return Number.isInteger(playerNumber) && playerNumber >= MIN_PLAYER_NUMBER && playerNumber <= MAX_PLAYER_NUMBER;
|
|
146
|
+
}
|
|
147
|
+
|
|
110
148
|
// src/players.ts
|
|
111
149
|
async function createPlayer(data) {
|
|
150
|
+
const playerNumber = data.playerNumber ?? await generateUniquePlayerNumber();
|
|
112
151
|
return prisma.player.create({
|
|
113
|
-
data
|
|
152
|
+
data: {
|
|
153
|
+
...data,
|
|
154
|
+
playerNumber
|
|
155
|
+
}
|
|
114
156
|
});
|
|
115
157
|
}
|
|
116
158
|
async function findPlayerById(id, include) {
|
|
@@ -125,6 +167,12 @@ async function findPlayerByExternalId(externalId, include) {
|
|
|
125
167
|
include
|
|
126
168
|
});
|
|
127
169
|
}
|
|
170
|
+
async function findPlayerByPlayerNumber(playerNumber, include) {
|
|
171
|
+
return prisma.player.findUnique({
|
|
172
|
+
where: { playerNumber },
|
|
173
|
+
include
|
|
174
|
+
});
|
|
175
|
+
}
|
|
128
176
|
async function findPlayerByUserEmail(email, include) {
|
|
129
177
|
const user = await prisma.user.findUnique({
|
|
130
178
|
where: { email },
|
|
@@ -320,7 +368,7 @@ async function searchTournaments(query, limit = 20) {
|
|
|
320
368
|
where: {
|
|
321
369
|
OR: [
|
|
322
370
|
{ name: { contains: query, mode: "insensitive" } },
|
|
323
|
-
{ location: { contains: query, mode: "insensitive" } }
|
|
371
|
+
{ location: { name: { contains: query, mode: "insensitive" } } }
|
|
324
372
|
]
|
|
325
373
|
},
|
|
326
374
|
orderBy: { date: "desc" }
|
|
@@ -540,9 +588,11 @@ async function createUser(data) {
|
|
|
540
588
|
}
|
|
541
589
|
async function createUserWithPlayer(userData, playerData) {
|
|
542
590
|
return prisma.$transaction(async (tx) => {
|
|
591
|
+
const playerNumber = await generateUniquePlayerNumber();
|
|
543
592
|
const player = await tx.player.create({
|
|
544
593
|
data: {
|
|
545
|
-
name: playerData.name
|
|
594
|
+
name: playerData.name,
|
|
595
|
+
playerNumber
|
|
546
596
|
}
|
|
547
597
|
});
|
|
548
598
|
const user = await tx.user.create({
|
|
@@ -554,6 +604,7 @@ async function createUserWithPlayer(userData, playerData) {
|
|
|
554
604
|
player: {
|
|
555
605
|
select: {
|
|
556
606
|
id: true,
|
|
607
|
+
playerNumber: true,
|
|
557
608
|
name: true,
|
|
558
609
|
rating: true,
|
|
559
610
|
ratingDeviation: true,
|
|
@@ -586,6 +637,7 @@ async function getUserWithPlayer(id) {
|
|
|
586
637
|
player: {
|
|
587
638
|
select: {
|
|
588
639
|
id: true,
|
|
640
|
+
playerNumber: true,
|
|
589
641
|
name: true,
|
|
590
642
|
rating: true,
|
|
591
643
|
ratingDeviation: true,
|
|
@@ -608,6 +660,7 @@ async function getUserByEmailWithPlayer(email) {
|
|
|
608
660
|
player: {
|
|
609
661
|
select: {
|
|
610
662
|
id: true,
|
|
663
|
+
playerNumber: true,
|
|
611
664
|
name: true,
|
|
612
665
|
rating: true,
|
|
613
666
|
ratingDeviation: true,
|
|
@@ -653,6 +706,7 @@ async function findUsers(params) {
|
|
|
653
706
|
player: {
|
|
654
707
|
select: {
|
|
655
708
|
id: true,
|
|
709
|
+
playerNumber: true,
|
|
656
710
|
name: true,
|
|
657
711
|
rating: true,
|
|
658
712
|
ratingDeviation: true,
|
|
@@ -684,6 +738,7 @@ async function linkPlayerToUser(userId, playerId) {
|
|
|
684
738
|
player: {
|
|
685
739
|
select: {
|
|
686
740
|
id: true,
|
|
741
|
+
playerNumber: true,
|
|
687
742
|
name: true,
|
|
688
743
|
rating: true,
|
|
689
744
|
ratingDeviation: true,
|
|
@@ -697,27 +752,100 @@ async function linkPlayerToUser(userId, playerId) {
|
|
|
697
752
|
return user;
|
|
698
753
|
});
|
|
699
754
|
}
|
|
755
|
+
|
|
756
|
+
// src/locations.ts
|
|
757
|
+
async function createLocation(data) {
|
|
758
|
+
return prisma.location.create({
|
|
759
|
+
data
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
async function findLocationById(id, include) {
|
|
763
|
+
return prisma.location.findUnique({
|
|
764
|
+
where: { id },
|
|
765
|
+
include
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
async function findLocationByExternalId(externalId, include) {
|
|
769
|
+
return prisma.location.findUnique({
|
|
770
|
+
where: { externalId },
|
|
771
|
+
include
|
|
772
|
+
});
|
|
773
|
+
}
|
|
774
|
+
async function findLocations(options = {}) {
|
|
775
|
+
return prisma.location.findMany({
|
|
776
|
+
take: options.take,
|
|
777
|
+
skip: options.skip,
|
|
778
|
+
where: options.where,
|
|
779
|
+
orderBy: options.orderBy,
|
|
780
|
+
include: options.include
|
|
781
|
+
});
|
|
782
|
+
}
|
|
783
|
+
async function searchLocations(query, limit = 20) {
|
|
784
|
+
return findLocations({
|
|
785
|
+
take: limit,
|
|
786
|
+
where: {
|
|
787
|
+
OR: [
|
|
788
|
+
{ name: { contains: query, mode: "insensitive" } },
|
|
789
|
+
{ city: { contains: query, mode: "insensitive" } }
|
|
790
|
+
]
|
|
791
|
+
},
|
|
792
|
+
orderBy: { name: "asc" }
|
|
793
|
+
});
|
|
794
|
+
}
|
|
795
|
+
async function updateLocation(id, data) {
|
|
796
|
+
return prisma.location.update({
|
|
797
|
+
where: { id },
|
|
798
|
+
data
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
async function deleteLocation(id) {
|
|
802
|
+
return prisma.location.delete({
|
|
803
|
+
where: { id }
|
|
804
|
+
});
|
|
805
|
+
}
|
|
806
|
+
async function countLocations(where) {
|
|
807
|
+
return prisma.location.count({ where });
|
|
808
|
+
}
|
|
809
|
+
async function getLocationWithTournaments(id) {
|
|
810
|
+
return prisma.location.findUnique({
|
|
811
|
+
where: { id },
|
|
812
|
+
include: {
|
|
813
|
+
tournaments: {
|
|
814
|
+
orderBy: {
|
|
815
|
+
date: "desc"
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
}
|
|
700
821
|
// Annotate the CommonJS export names for ESM import in node:
|
|
701
822
|
0 && (module.exports = {
|
|
702
823
|
connect,
|
|
824
|
+
countLocations,
|
|
703
825
|
countPlayers,
|
|
704
826
|
countResults,
|
|
705
827
|
countTournaments,
|
|
706
828
|
countUsers,
|
|
829
|
+
createLocation,
|
|
707
830
|
createManyResults,
|
|
708
831
|
createPlayer,
|
|
709
832
|
createResult,
|
|
710
833
|
createTournament,
|
|
711
834
|
createUser,
|
|
712
835
|
createUserWithPlayer,
|
|
836
|
+
deleteLocation,
|
|
713
837
|
deletePlayer,
|
|
714
838
|
deleteResult,
|
|
715
839
|
deleteResultsByTournament,
|
|
716
840
|
deleteTournament,
|
|
717
841
|
deleteUser,
|
|
718
842
|
disconnect,
|
|
843
|
+
findLocationByExternalId,
|
|
844
|
+
findLocationById,
|
|
845
|
+
findLocations,
|
|
719
846
|
findPlayerByExternalId,
|
|
720
847
|
findPlayerById,
|
|
848
|
+
findPlayerByPlayerNumber,
|
|
721
849
|
findPlayerByUserEmail,
|
|
722
850
|
findPlayers,
|
|
723
851
|
findResultById,
|
|
@@ -729,6 +857,8 @@ async function linkPlayerToUser(userId, playerId) {
|
|
|
729
857
|
findUserByEmail,
|
|
730
858
|
findUserById,
|
|
731
859
|
findUsers,
|
|
860
|
+
generateUniquePlayerNumber,
|
|
861
|
+
getLocationWithTournaments,
|
|
732
862
|
getMajorTournaments,
|
|
733
863
|
getPlayerResults,
|
|
734
864
|
getPlayerStats,
|
|
@@ -745,12 +875,15 @@ async function linkPlayerToUser(userId, playerId) {
|
|
|
745
875
|
getTournamentsByDateRange,
|
|
746
876
|
getUserByEmailWithPlayer,
|
|
747
877
|
getUserWithPlayer,
|
|
878
|
+
isValidPlayerNumber,
|
|
748
879
|
linkPlayerToUser,
|
|
749
880
|
prisma,
|
|
750
881
|
recalculateTimeDecay,
|
|
882
|
+
searchLocations,
|
|
751
883
|
searchPlayers,
|
|
752
884
|
searchTournaments,
|
|
753
885
|
testConnection,
|
|
886
|
+
updateLocation,
|
|
754
887
|
updatePlayer,
|
|
755
888
|
updatePlayerRating,
|
|
756
889
|
updateResult,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _prisma_client_runtime_library from '@prisma/client/runtime/library';
|
|
2
2
|
import * as _prisma_client from '@prisma/client';
|
|
3
|
-
import { PrismaClient, Player, Prisma, EventBoosterType, Tournament, TournamentResult, User } from '@prisma/client';
|
|
4
|
-
export { EventBoosterType, Player, Prisma, Role, Tournament, TournamentResult, User } from '@prisma/client';
|
|
3
|
+
import { PrismaClient, Player, Prisma, EventBoosterType, Tournament, TournamentResult, User, Location } from '@prisma/client';
|
|
4
|
+
export { EventBoosterType, Location, Player, Prisma, Role, Tournament, TournamentResult, User } from '@prisma/client';
|
|
5
5
|
|
|
6
6
|
declare const prisma: PrismaClient<_prisma_client.Prisma.PrismaClientOptions, never, _prisma_client_runtime_library.DefaultArgs>;
|
|
7
7
|
/**
|
|
@@ -25,6 +25,7 @@ declare function testConnection(): Promise<boolean>;
|
|
|
25
25
|
*/
|
|
26
26
|
interface CreatePlayerInput {
|
|
27
27
|
externalId?: string;
|
|
28
|
+
playerNumber?: number;
|
|
28
29
|
name?: string;
|
|
29
30
|
rating?: number;
|
|
30
31
|
ratingDeviation?: number;
|
|
@@ -56,7 +57,7 @@ interface FindPlayersOptions {
|
|
|
56
57
|
include?: Prisma.PlayerInclude;
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
|
-
* Creates a new player
|
|
60
|
+
* Creates a new player with auto-generated playerNumber
|
|
60
61
|
*/
|
|
61
62
|
declare function createPlayer(data: CreatePlayerInput): Promise<Player>;
|
|
62
63
|
/**
|
|
@@ -67,6 +68,10 @@ declare function findPlayerById(id: string, include?: Prisma.PlayerInclude): Pro
|
|
|
67
68
|
* Finds a player by external ID
|
|
68
69
|
*/
|
|
69
70
|
declare function findPlayerByExternalId(externalId: string, include?: Prisma.PlayerInclude): Promise<Player | null>;
|
|
71
|
+
/**
|
|
72
|
+
* Finds a player by player number
|
|
73
|
+
*/
|
|
74
|
+
declare function findPlayerByPlayerNumber(playerNumber: number, include?: Prisma.PlayerInclude): Promise<Player | null>;
|
|
70
75
|
/**
|
|
71
76
|
* Finds a player through their linked User's email
|
|
72
77
|
*/
|
|
@@ -114,8 +119,10 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
114
119
|
createdAt: Date;
|
|
115
120
|
updatedAt: Date;
|
|
116
121
|
externalId: string | null;
|
|
117
|
-
|
|
122
|
+
description: string | null;
|
|
118
123
|
date: Date;
|
|
124
|
+
locationId: string | null;
|
|
125
|
+
organizerId: string | null;
|
|
119
126
|
tgpConfig: Prisma.JsonValue | null;
|
|
120
127
|
eventBooster: _prisma_client.$Enums.EventBoosterType;
|
|
121
128
|
allowsOptOut: boolean;
|
|
@@ -150,8 +157,10 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
150
157
|
createdAt: Date;
|
|
151
158
|
updatedAt: Date;
|
|
152
159
|
externalId: string | null;
|
|
153
|
-
|
|
160
|
+
description: string | null;
|
|
154
161
|
date: Date;
|
|
162
|
+
locationId: string | null;
|
|
163
|
+
organizerId: string | null;
|
|
155
164
|
tgpConfig: Prisma.JsonValue | null;
|
|
156
165
|
eventBooster: _prisma_client.$Enums.EventBoosterType;
|
|
157
166
|
allowsOptOut: boolean;
|
|
@@ -184,6 +193,7 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
184
193
|
createdAt: Date;
|
|
185
194
|
updatedAt: Date;
|
|
186
195
|
externalId: string | null;
|
|
196
|
+
playerNumber: number;
|
|
187
197
|
rating: number;
|
|
188
198
|
ratingDeviation: number;
|
|
189
199
|
ranking: number | null;
|
|
@@ -197,14 +207,28 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
197
207
|
*/
|
|
198
208
|
declare function searchPlayers(query: string, limit?: number): Promise<Player[]>;
|
|
199
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Generates a unique player number with collision handling.
|
|
212
|
+
* Retries up to MAX_RETRIES times if collision occurs.
|
|
213
|
+
*
|
|
214
|
+
* @throws Error if unable to generate unique number after max retries
|
|
215
|
+
*/
|
|
216
|
+
declare function generateUniquePlayerNumber(): Promise<number>;
|
|
217
|
+
/**
|
|
218
|
+
* Validates that a player number is in the valid range
|
|
219
|
+
*/
|
|
220
|
+
declare function isValidPlayerNumber(playerNumber: number): boolean;
|
|
221
|
+
|
|
200
222
|
/**
|
|
201
223
|
* Input for creating a new tournament
|
|
202
224
|
*/
|
|
203
225
|
interface CreateTournamentInput {
|
|
204
226
|
externalId?: string;
|
|
205
227
|
name: string;
|
|
206
|
-
|
|
228
|
+
description?: string;
|
|
207
229
|
date: Date;
|
|
230
|
+
locationId?: string;
|
|
231
|
+
organizerId?: string;
|
|
208
232
|
tgpConfig?: Prisma.InputJsonValue;
|
|
209
233
|
eventBooster?: EventBoosterType;
|
|
210
234
|
allowsOptOut?: boolean;
|
|
@@ -221,8 +245,10 @@ interface CreateTournamentInput {
|
|
|
221
245
|
*/
|
|
222
246
|
interface UpdateTournamentInput {
|
|
223
247
|
name?: string;
|
|
224
|
-
|
|
248
|
+
description?: string | null;
|
|
225
249
|
date?: Date;
|
|
250
|
+
locationId?: string | null;
|
|
251
|
+
organizerId?: string | null;
|
|
226
252
|
tgpConfig?: Prisma.InputJsonValue;
|
|
227
253
|
eventBooster?: EventBoosterType;
|
|
228
254
|
allowsOptOut?: boolean;
|
|
@@ -299,6 +325,7 @@ declare function getTournamentWithResults(id: string): Promise<({
|
|
|
299
325
|
createdAt: Date;
|
|
300
326
|
updatedAt: Date;
|
|
301
327
|
externalId: string | null;
|
|
328
|
+
playerNumber: number;
|
|
302
329
|
rating: number;
|
|
303
330
|
ratingDeviation: number;
|
|
304
331
|
ranking: number | null;
|
|
@@ -329,8 +356,10 @@ declare function getTournamentWithResults(id: string): Promise<({
|
|
|
329
356
|
createdAt: Date;
|
|
330
357
|
updatedAt: Date;
|
|
331
358
|
externalId: string | null;
|
|
332
|
-
|
|
359
|
+
description: string | null;
|
|
333
360
|
date: Date;
|
|
361
|
+
locationId: string | null;
|
|
362
|
+
organizerId: string | null;
|
|
334
363
|
tgpConfig: Prisma.JsonValue | null;
|
|
335
364
|
eventBooster: _prisma_client.$Enums.EventBoosterType;
|
|
336
365
|
allowsOptOut: boolean;
|
|
@@ -343,7 +372,7 @@ declare function getTournamentWithResults(id: string): Promise<({
|
|
|
343
372
|
firstPlaceValue: number | null;
|
|
344
373
|
}) | null>;
|
|
345
374
|
/**
|
|
346
|
-
* Searches tournaments by name or location
|
|
375
|
+
* Searches tournaments by name or location name
|
|
347
376
|
*/
|
|
348
377
|
declare function searchTournaments(query: string, limit?: number): Promise<Tournament[]>;
|
|
349
378
|
/**
|
|
@@ -358,6 +387,7 @@ declare function getTournamentStats(id: string): Promise<{
|
|
|
358
387
|
createdAt: Date;
|
|
359
388
|
updatedAt: Date;
|
|
360
389
|
externalId: string | null;
|
|
390
|
+
playerNumber: number;
|
|
361
391
|
rating: number;
|
|
362
392
|
ratingDeviation: number;
|
|
363
393
|
ranking: number | null;
|
|
@@ -388,8 +418,10 @@ declare function getTournamentStats(id: string): Promise<{
|
|
|
388
418
|
createdAt: Date;
|
|
389
419
|
updatedAt: Date;
|
|
390
420
|
externalId: string | null;
|
|
391
|
-
|
|
421
|
+
description: string | null;
|
|
392
422
|
date: Date;
|
|
423
|
+
locationId: string | null;
|
|
424
|
+
organizerId: string | null;
|
|
393
425
|
tgpConfig: Prisma.JsonValue | null;
|
|
394
426
|
eventBooster: _prisma_client.$Enums.EventBoosterType;
|
|
395
427
|
allowsOptOut: boolean;
|
|
@@ -571,6 +603,7 @@ interface UserWithPlayer {
|
|
|
571
603
|
updatedAt: Date;
|
|
572
604
|
player: {
|
|
573
605
|
id: string;
|
|
606
|
+
playerNumber: number;
|
|
574
607
|
name: string | null;
|
|
575
608
|
rating: number;
|
|
576
609
|
ratingDeviation: number;
|
|
@@ -641,6 +674,106 @@ declare function findUsers(params: {
|
|
|
641
674
|
*/
|
|
642
675
|
declare function linkPlayerToUser(userId: string, playerId: string | null): Promise<UserWithPlayer>;
|
|
643
676
|
|
|
677
|
+
/**
|
|
678
|
+
* Input for creating a new location
|
|
679
|
+
*/
|
|
680
|
+
interface CreateLocationInput {
|
|
681
|
+
externalId?: string;
|
|
682
|
+
name: string;
|
|
683
|
+
address?: string;
|
|
684
|
+
city?: string;
|
|
685
|
+
state?: string;
|
|
686
|
+
country?: string;
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Input for updating a location
|
|
690
|
+
*/
|
|
691
|
+
interface UpdateLocationInput {
|
|
692
|
+
name?: string;
|
|
693
|
+
address?: string | null;
|
|
694
|
+
city?: string | null;
|
|
695
|
+
state?: string | null;
|
|
696
|
+
country?: string | null;
|
|
697
|
+
}
|
|
698
|
+
/**
|
|
699
|
+
* Options for querying locations
|
|
700
|
+
*/
|
|
701
|
+
interface FindLocationsOptions {
|
|
702
|
+
take?: number;
|
|
703
|
+
skip?: number;
|
|
704
|
+
orderBy?: Prisma.LocationOrderByWithRelationInput;
|
|
705
|
+
where?: Prisma.LocationWhereInput;
|
|
706
|
+
include?: Prisma.LocationInclude;
|
|
707
|
+
}
|
|
708
|
+
/**
|
|
709
|
+
* Creates a new location
|
|
710
|
+
*/
|
|
711
|
+
declare function createLocation(data: CreateLocationInput): Promise<Location>;
|
|
712
|
+
/**
|
|
713
|
+
* Finds a location by ID
|
|
714
|
+
*/
|
|
715
|
+
declare function findLocationById(id: string, include?: Prisma.LocationInclude): Promise<Location | null>;
|
|
716
|
+
/**
|
|
717
|
+
* Finds a location by external ID
|
|
718
|
+
*/
|
|
719
|
+
declare function findLocationByExternalId(externalId: string, include?: Prisma.LocationInclude): Promise<Location | null>;
|
|
720
|
+
/**
|
|
721
|
+
* Finds multiple locations with optional filters
|
|
722
|
+
*/
|
|
723
|
+
declare function findLocations(options?: FindLocationsOptions): Promise<Location[]>;
|
|
724
|
+
/**
|
|
725
|
+
* Searches locations by name or city
|
|
726
|
+
*/
|
|
727
|
+
declare function searchLocations(query: string, limit?: number): Promise<Location[]>;
|
|
728
|
+
/**
|
|
729
|
+
* Updates a location
|
|
730
|
+
*/
|
|
731
|
+
declare function updateLocation(id: string, data: UpdateLocationInput): Promise<Location>;
|
|
732
|
+
/**
|
|
733
|
+
* Deletes a location
|
|
734
|
+
*/
|
|
735
|
+
declare function deleteLocation(id: string): Promise<Location>;
|
|
736
|
+
/**
|
|
737
|
+
* Counts total locations
|
|
738
|
+
*/
|
|
739
|
+
declare function countLocations(where?: Prisma.LocationWhereInput): Promise<number>;
|
|
740
|
+
/**
|
|
741
|
+
* Gets location with its tournaments
|
|
742
|
+
*/
|
|
743
|
+
declare function getLocationWithTournaments(id: string): Promise<({
|
|
744
|
+
tournaments: {
|
|
745
|
+
name: string;
|
|
746
|
+
id: string;
|
|
747
|
+
createdAt: Date;
|
|
748
|
+
updatedAt: Date;
|
|
749
|
+
externalId: string | null;
|
|
750
|
+
description: string | null;
|
|
751
|
+
date: Date;
|
|
752
|
+
locationId: string | null;
|
|
753
|
+
organizerId: string | null;
|
|
754
|
+
tgpConfig: Prisma.JsonValue | null;
|
|
755
|
+
eventBooster: _prisma_client.$Enums.EventBoosterType;
|
|
756
|
+
allowsOptOut: boolean;
|
|
757
|
+
baseValue: number | null;
|
|
758
|
+
tvaRating: number | null;
|
|
759
|
+
tvaRanking: number | null;
|
|
760
|
+
totalTVA: number | null;
|
|
761
|
+
tgp: number | null;
|
|
762
|
+
eventBoosterMultiplier: number | null;
|
|
763
|
+
firstPlaceValue: number | null;
|
|
764
|
+
}[];
|
|
765
|
+
} & {
|
|
766
|
+
name: string;
|
|
767
|
+
id: string;
|
|
768
|
+
createdAt: Date;
|
|
769
|
+
updatedAt: Date;
|
|
770
|
+
externalId: string | null;
|
|
771
|
+
address: string | null;
|
|
772
|
+
city: string | null;
|
|
773
|
+
state: string | null;
|
|
774
|
+
country: string | null;
|
|
775
|
+
}) | null>;
|
|
776
|
+
|
|
644
777
|
/**
|
|
645
778
|
* Re-export Prisma generated types
|
|
646
779
|
*/
|
|
@@ -700,4 +833,4 @@ interface ConnectionStatus {
|
|
|
700
833
|
error?: string;
|
|
701
834
|
}
|
|
702
835
|
|
|
703
|
-
export { type ConnectionStatus, type CreatePlayerInput, type CreateResultInput, type CreateTournamentInput, type CreateUserInput, type FindPlayersOptions, type FindResultsOptions, type FindTournamentsOptions, type PlayerStatistics, type PlayerWithResults, type TournamentResultWithTournament, type TournamentStatistics, type UpdatePlayerInput, type UpdateResultInput, type UpdateTournamentInput, type UpdateUserInput, type UserWithPlayer, connect, countPlayers, countResults, countTournaments, countUsers, createManyResults, createPlayer, createResult, createTournament, createUser, createUserWithPlayer, deletePlayer, deleteResult, deleteResultsByTournament, deleteTournament, deleteUser, disconnect, findPlayerByExternalId, findPlayerById, findPlayerByUserEmail, findPlayers, findResultById, findResultByPlayerAndTournament, findResults, findTournamentByExternalId, findTournamentById, findTournaments, findUserByEmail, findUserById, findUsers, getMajorTournaments, getPlayerResults, getPlayerStats, getPlayerTopFinishes, getPlayerWithResults, getRatedPlayers, getRecentTournaments, getTopPlayersByRanking, getTopPlayersByRating, getTournamentResults, getTournamentStats, getTournamentWithResults, getTournamentsByBoosterType, getTournamentsByDateRange, getUserByEmailWithPlayer, getUserWithPlayer, linkPlayerToUser, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
|
836
|
+
export { type ConnectionStatus, type CreateLocationInput, type CreatePlayerInput, type CreateResultInput, type CreateTournamentInput, type CreateUserInput, type FindLocationsOptions, type FindPlayersOptions, type FindResultsOptions, type FindTournamentsOptions, type PlayerStatistics, type PlayerWithResults, type TournamentResultWithTournament, type TournamentStatistics, type UpdateLocationInput, type UpdatePlayerInput, type UpdateResultInput, type UpdateTournamentInput, type UpdateUserInput, type UserWithPlayer, connect, countLocations, countPlayers, countResults, countTournaments, countUsers, createLocation, createManyResults, createPlayer, createResult, createTournament, createUser, createUserWithPlayer, deleteLocation, deletePlayer, deleteResult, deleteResultsByTournament, deleteTournament, deleteUser, disconnect, findLocationByExternalId, findLocationById, findLocations, findPlayerByExternalId, findPlayerById, findPlayerByPlayerNumber, findPlayerByUserEmail, findPlayers, findResultById, findResultByPlayerAndTournament, findResults, findTournamentByExternalId, findTournamentById, findTournaments, findUserByEmail, findUserById, findUsers, generateUniquePlayerNumber, getLocationWithTournaments, getMajorTournaments, getPlayerResults, getPlayerStats, getPlayerTopFinishes, getPlayerWithResults, getRatedPlayers, getRecentTournaments, getTopPlayersByRanking, getTopPlayersByRating, getTournamentResults, getTournamentStats, getTournamentWithResults, getTournamentsByBoosterType, getTournamentsByDateRange, getUserByEmailWithPlayer, getUserWithPlayer, isValidPlayerNumber, linkPlayerToUser, prisma, recalculateTimeDecay, searchLocations, searchPlayers, searchTournaments, testConnection, updateLocation, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|