@opprs/db-prisma 1.2.0 → 2.0.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.
- package/dist/index.cjs +8 -11
- package/dist/index.d.cts +4 -10
- package/dist/index.d.ts +4 -10
- package/dist/index.js +7 -10
- package/package.json +3 -2
- package/prisma/schema.prisma +0 -2
package/dist/index.cjs
CHANGED
|
@@ -37,9 +37,9 @@ __export(index_exports, {
|
|
|
37
37
|
deleteTournament: () => deleteTournament,
|
|
38
38
|
deleteUser: () => deleteUser,
|
|
39
39
|
disconnect: () => disconnect,
|
|
40
|
-
findPlayerByEmail: () => findPlayerByEmail,
|
|
41
40
|
findPlayerByExternalId: () => findPlayerByExternalId,
|
|
42
41
|
findPlayerById: () => findPlayerById,
|
|
42
|
+
findPlayerByUserEmail: () => findPlayerByUserEmail,
|
|
43
43
|
findPlayers: () => findPlayers,
|
|
44
44
|
findResultById: () => findResultById,
|
|
45
45
|
findResultByPlayerAndTournament: () => findResultByPlayerAndTournament,
|
|
@@ -124,11 +124,12 @@ async function findPlayerByExternalId(externalId, include) {
|
|
|
124
124
|
include
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
|
-
async function
|
|
128
|
-
|
|
127
|
+
async function findPlayerByUserEmail(email, include) {
|
|
128
|
+
const user = await prisma.user.findUnique({
|
|
129
129
|
where: { email },
|
|
130
|
-
include
|
|
130
|
+
include: { player: include ? { include } : true }
|
|
131
131
|
});
|
|
132
|
+
return user?.player ?? null;
|
|
132
133
|
}
|
|
133
134
|
async function findPlayers(options = {}) {
|
|
134
135
|
return prisma.player.findMany({
|
|
@@ -217,10 +218,7 @@ async function searchPlayers(query, limit = 20) {
|
|
|
217
218
|
return findPlayers({
|
|
218
219
|
take: limit,
|
|
219
220
|
where: {
|
|
220
|
-
|
|
221
|
-
{ name: { contains: query, mode: "insensitive" } },
|
|
222
|
-
{ email: { contains: query, mode: "insensitive" } }
|
|
223
|
-
]
|
|
221
|
+
name: { contains: query, mode: "insensitive" }
|
|
224
222
|
}
|
|
225
223
|
});
|
|
226
224
|
}
|
|
@@ -543,8 +541,7 @@ async function createUserWithPlayer(userData, playerData) {
|
|
|
543
541
|
return prisma.$transaction(async (tx) => {
|
|
544
542
|
const player = await tx.player.create({
|
|
545
543
|
data: {
|
|
546
|
-
name: playerData.name
|
|
547
|
-
email: playerData.email
|
|
544
|
+
name: playerData.name
|
|
548
545
|
}
|
|
549
546
|
});
|
|
550
547
|
const user = await tx.user.create({
|
|
@@ -686,9 +683,9 @@ async function findUsers(params) {
|
|
|
686
683
|
deleteTournament,
|
|
687
684
|
deleteUser,
|
|
688
685
|
disconnect,
|
|
689
|
-
findPlayerByEmail,
|
|
690
686
|
findPlayerByExternalId,
|
|
691
687
|
findPlayerById,
|
|
688
|
+
findPlayerByUserEmail,
|
|
692
689
|
findPlayers,
|
|
693
690
|
findResultById,
|
|
694
691
|
findResultByPlayerAndTournament,
|
package/dist/index.d.cts
CHANGED
|
@@ -26,7 +26,6 @@ declare function testConnection(): Promise<boolean>;
|
|
|
26
26
|
interface CreatePlayerInput {
|
|
27
27
|
externalId?: string;
|
|
28
28
|
name?: string;
|
|
29
|
-
email?: string;
|
|
30
29
|
rating?: number;
|
|
31
30
|
ratingDeviation?: number;
|
|
32
31
|
ranking?: number;
|
|
@@ -38,7 +37,6 @@ interface CreatePlayerInput {
|
|
|
38
37
|
*/
|
|
39
38
|
interface UpdatePlayerInput {
|
|
40
39
|
name?: string;
|
|
41
|
-
email?: string;
|
|
42
40
|
rating?: number;
|
|
43
41
|
ratingDeviation?: number;
|
|
44
42
|
ranking?: number;
|
|
@@ -70,9 +68,9 @@ declare function findPlayerById(id: string, include?: Prisma.PlayerInclude): Pro
|
|
|
70
68
|
*/
|
|
71
69
|
declare function findPlayerByExternalId(externalId: string, include?: Prisma.PlayerInclude): Promise<Player | null>;
|
|
72
70
|
/**
|
|
73
|
-
* Finds a player
|
|
71
|
+
* Finds a player through their linked User's email
|
|
74
72
|
*/
|
|
75
|
-
declare function
|
|
73
|
+
declare function findPlayerByUserEmail(email: string, include?: Prisma.PlayerInclude): Promise<Player | null>;
|
|
76
74
|
/**
|
|
77
75
|
* Finds multiple players with optional filters
|
|
78
76
|
*/
|
|
@@ -186,7 +184,6 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
186
184
|
createdAt: Date;
|
|
187
185
|
updatedAt: Date;
|
|
188
186
|
externalId: string | null;
|
|
189
|
-
email: string | null;
|
|
190
187
|
rating: number;
|
|
191
188
|
ratingDeviation: number;
|
|
192
189
|
ranking: number | null;
|
|
@@ -196,7 +193,7 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
196
193
|
lastEventDate: Date | null;
|
|
197
194
|
} | null>;
|
|
198
195
|
/**
|
|
199
|
-
* Searches players by name
|
|
196
|
+
* Searches players by name
|
|
200
197
|
*/
|
|
201
198
|
declare function searchPlayers(query: string, limit?: number): Promise<Player[]>;
|
|
202
199
|
|
|
@@ -302,7 +299,6 @@ declare function getTournamentWithResults(id: string): Promise<({
|
|
|
302
299
|
createdAt: Date;
|
|
303
300
|
updatedAt: Date;
|
|
304
301
|
externalId: string | null;
|
|
305
|
-
email: string | null;
|
|
306
302
|
rating: number;
|
|
307
303
|
ratingDeviation: number;
|
|
308
304
|
ranking: number | null;
|
|
@@ -362,7 +358,6 @@ declare function getTournamentStats(id: string): Promise<{
|
|
|
362
358
|
createdAt: Date;
|
|
363
359
|
updatedAt: Date;
|
|
364
360
|
externalId: string | null;
|
|
365
|
-
email: string | null;
|
|
366
361
|
rating: number;
|
|
367
362
|
ratingDeviation: number;
|
|
368
363
|
ranking: number | null;
|
|
@@ -593,7 +588,6 @@ declare function createUser(data: CreateUserInput): Promise<User>;
|
|
|
593
588
|
*/
|
|
594
589
|
declare function createUserWithPlayer(userData: Omit<CreateUserInput, 'playerId'>, playerData: {
|
|
595
590
|
name?: string;
|
|
596
|
-
email?: string;
|
|
597
591
|
}): Promise<UserWithPlayer>;
|
|
598
592
|
/**
|
|
599
593
|
* Finds a user by ID
|
|
@@ -696,4 +690,4 @@ interface ConnectionStatus {
|
|
|
696
690
|
error?: string;
|
|
697
691
|
}
|
|
698
692
|
|
|
699
|
-
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,
|
|
693
|
+
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, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,6 @@ declare function testConnection(): Promise<boolean>;
|
|
|
26
26
|
interface CreatePlayerInput {
|
|
27
27
|
externalId?: string;
|
|
28
28
|
name?: string;
|
|
29
|
-
email?: string;
|
|
30
29
|
rating?: number;
|
|
31
30
|
ratingDeviation?: number;
|
|
32
31
|
ranking?: number;
|
|
@@ -38,7 +37,6 @@ interface CreatePlayerInput {
|
|
|
38
37
|
*/
|
|
39
38
|
interface UpdatePlayerInput {
|
|
40
39
|
name?: string;
|
|
41
|
-
email?: string;
|
|
42
40
|
rating?: number;
|
|
43
41
|
ratingDeviation?: number;
|
|
44
42
|
ranking?: number;
|
|
@@ -70,9 +68,9 @@ declare function findPlayerById(id: string, include?: Prisma.PlayerInclude): Pro
|
|
|
70
68
|
*/
|
|
71
69
|
declare function findPlayerByExternalId(externalId: string, include?: Prisma.PlayerInclude): Promise<Player | null>;
|
|
72
70
|
/**
|
|
73
|
-
* Finds a player
|
|
71
|
+
* Finds a player through their linked User's email
|
|
74
72
|
*/
|
|
75
|
-
declare function
|
|
73
|
+
declare function findPlayerByUserEmail(email: string, include?: Prisma.PlayerInclude): Promise<Player | null>;
|
|
76
74
|
/**
|
|
77
75
|
* Finds multiple players with optional filters
|
|
78
76
|
*/
|
|
@@ -186,7 +184,6 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
186
184
|
createdAt: Date;
|
|
187
185
|
updatedAt: Date;
|
|
188
186
|
externalId: string | null;
|
|
189
|
-
email: string | null;
|
|
190
187
|
rating: number;
|
|
191
188
|
ratingDeviation: number;
|
|
192
189
|
ranking: number | null;
|
|
@@ -196,7 +193,7 @@ declare function getPlayerWithResults(id: string): Promise<{
|
|
|
196
193
|
lastEventDate: Date | null;
|
|
197
194
|
} | null>;
|
|
198
195
|
/**
|
|
199
|
-
* Searches players by name
|
|
196
|
+
* Searches players by name
|
|
200
197
|
*/
|
|
201
198
|
declare function searchPlayers(query: string, limit?: number): Promise<Player[]>;
|
|
202
199
|
|
|
@@ -302,7 +299,6 @@ declare function getTournamentWithResults(id: string): Promise<({
|
|
|
302
299
|
createdAt: Date;
|
|
303
300
|
updatedAt: Date;
|
|
304
301
|
externalId: string | null;
|
|
305
|
-
email: string | null;
|
|
306
302
|
rating: number;
|
|
307
303
|
ratingDeviation: number;
|
|
308
304
|
ranking: number | null;
|
|
@@ -362,7 +358,6 @@ declare function getTournamentStats(id: string): Promise<{
|
|
|
362
358
|
createdAt: Date;
|
|
363
359
|
updatedAt: Date;
|
|
364
360
|
externalId: string | null;
|
|
365
|
-
email: string | null;
|
|
366
361
|
rating: number;
|
|
367
362
|
ratingDeviation: number;
|
|
368
363
|
ranking: number | null;
|
|
@@ -593,7 +588,6 @@ declare function createUser(data: CreateUserInput): Promise<User>;
|
|
|
593
588
|
*/
|
|
594
589
|
declare function createUserWithPlayer(userData: Omit<CreateUserInput, 'playerId'>, playerData: {
|
|
595
590
|
name?: string;
|
|
596
|
-
email?: string;
|
|
597
591
|
}): Promise<UserWithPlayer>;
|
|
598
592
|
/**
|
|
599
593
|
* Finds a user by ID
|
|
@@ -696,4 +690,4 @@ interface ConnectionStatus {
|
|
|
696
690
|
error?: string;
|
|
697
691
|
}
|
|
698
692
|
|
|
699
|
-
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,
|
|
693
|
+
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, prisma, recalculateTimeDecay, searchPlayers, searchTournaments, testConnection, updatePlayer, updatePlayerRating, updateResult, updateResultPoints, updateTournament, updateUser, updateUserRefreshToken };
|
package/dist/index.js
CHANGED
|
@@ -41,11 +41,12 @@ async function findPlayerByExternalId(externalId, include) {
|
|
|
41
41
|
include
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
|
-
async function
|
|
45
|
-
|
|
44
|
+
async function findPlayerByUserEmail(email, include) {
|
|
45
|
+
const user = await prisma.user.findUnique({
|
|
46
46
|
where: { email },
|
|
47
|
-
include
|
|
47
|
+
include: { player: include ? { include } : true }
|
|
48
48
|
});
|
|
49
|
+
return user?.player ?? null;
|
|
49
50
|
}
|
|
50
51
|
async function findPlayers(options = {}) {
|
|
51
52
|
return prisma.player.findMany({
|
|
@@ -134,10 +135,7 @@ async function searchPlayers(query, limit = 20) {
|
|
|
134
135
|
return findPlayers({
|
|
135
136
|
take: limit,
|
|
136
137
|
where: {
|
|
137
|
-
|
|
138
|
-
{ name: { contains: query, mode: "insensitive" } },
|
|
139
|
-
{ email: { contains: query, mode: "insensitive" } }
|
|
140
|
-
]
|
|
138
|
+
name: { contains: query, mode: "insensitive" }
|
|
141
139
|
}
|
|
142
140
|
});
|
|
143
141
|
}
|
|
@@ -460,8 +458,7 @@ async function createUserWithPlayer(userData, playerData) {
|
|
|
460
458
|
return prisma.$transaction(async (tx) => {
|
|
461
459
|
const player = await tx.player.create({
|
|
462
460
|
data: {
|
|
463
|
-
name: playerData.name
|
|
464
|
-
email: playerData.email
|
|
461
|
+
name: playerData.name
|
|
465
462
|
}
|
|
466
463
|
});
|
|
467
464
|
const user = await tx.user.create({
|
|
@@ -602,9 +599,9 @@ export {
|
|
|
602
599
|
deleteTournament,
|
|
603
600
|
deleteUser,
|
|
604
601
|
disconnect,
|
|
605
|
-
findPlayerByEmail,
|
|
606
602
|
findPlayerByExternalId,
|
|
607
603
|
findPlayerById,
|
|
604
|
+
findPlayerByUserEmail,
|
|
608
605
|
findPlayers,
|
|
609
606
|
findResultById,
|
|
610
607
|
findResultByPlayerAndTournament,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opprs/db-prisma",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Database backend for OPPR (Open Pinball Player Ranking System) using Prisma and PostgreSQL",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"oppr",
|
|
@@ -80,6 +80,7 @@
|
|
|
80
80
|
"db:migrate:prod": "prisma migrate deploy",
|
|
81
81
|
"db:studio": "prisma studio",
|
|
82
82
|
"db:seed": "tsx prisma/seed.ts",
|
|
83
|
-
"db:reset": "prisma migrate reset"
|
|
83
|
+
"db:reset": "prisma migrate reset",
|
|
84
|
+
"db:make-admin": "tsx scripts/make-admin.ts"
|
|
84
85
|
}
|
|
85
86
|
}
|
package/prisma/schema.prisma
CHANGED
|
@@ -19,7 +19,6 @@ model Player {
|
|
|
19
19
|
// Player identification
|
|
20
20
|
externalId String? @unique // External ID from OPPR or other systems
|
|
21
21
|
name String?
|
|
22
|
-
email String? @unique
|
|
23
22
|
|
|
24
23
|
// OPPR Rating fields
|
|
25
24
|
rating Float @default(1500) // Glicko rating
|
|
@@ -36,7 +35,6 @@ model Player {
|
|
|
36
35
|
tournamentResults TournamentResult[]
|
|
37
36
|
user User?
|
|
38
37
|
|
|
39
|
-
@@index([email])
|
|
40
38
|
@@index([externalId])
|
|
41
39
|
@@index([rating])
|
|
42
40
|
@@index([ranking])
|