@opprs/db-prisma 1.1.5 → 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 +32 -11
- package/dist/index.d.cts +13 -10
- package/dist/index.d.ts +13 -10
- package/dist/index.js +30 -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,
|
|
@@ -49,6 +49,7 @@ __export(index_exports, {
|
|
|
49
49
|
findTournaments: () => findTournaments,
|
|
50
50
|
findUserByEmail: () => findUserByEmail,
|
|
51
51
|
findUserById: () => findUserById,
|
|
52
|
+
findUsers: () => findUsers,
|
|
52
53
|
getMajorTournaments: () => getMajorTournaments,
|
|
53
54
|
getPlayerResults: () => getPlayerResults,
|
|
54
55
|
getPlayerStats: () => getPlayerStats,
|
|
@@ -123,11 +124,12 @@ async function findPlayerByExternalId(externalId, include) {
|
|
|
123
124
|
include
|
|
124
125
|
});
|
|
125
126
|
}
|
|
126
|
-
async function
|
|
127
|
-
|
|
127
|
+
async function findPlayerByUserEmail(email, include) {
|
|
128
|
+
const user = await prisma.user.findUnique({
|
|
128
129
|
where: { email },
|
|
129
|
-
include
|
|
130
|
+
include: { player: include ? { include } : true }
|
|
130
131
|
});
|
|
132
|
+
return user?.player ?? null;
|
|
131
133
|
}
|
|
132
134
|
async function findPlayers(options = {}) {
|
|
133
135
|
return prisma.player.findMany({
|
|
@@ -216,10 +218,7 @@ async function searchPlayers(query, limit = 20) {
|
|
|
216
218
|
return findPlayers({
|
|
217
219
|
take: limit,
|
|
218
220
|
where: {
|
|
219
|
-
|
|
220
|
-
{ name: { contains: query, mode: "insensitive" } },
|
|
221
|
-
{ email: { contains: query, mode: "insensitive" } }
|
|
222
|
-
]
|
|
221
|
+
name: { contains: query, mode: "insensitive" }
|
|
223
222
|
}
|
|
224
223
|
});
|
|
225
224
|
}
|
|
@@ -542,8 +541,7 @@ async function createUserWithPlayer(userData, playerData) {
|
|
|
542
541
|
return prisma.$transaction(async (tx) => {
|
|
543
542
|
const player = await tx.player.create({
|
|
544
543
|
data: {
|
|
545
|
-
name: playerData.name
|
|
546
|
-
email: playerData.email
|
|
544
|
+
name: playerData.name
|
|
547
545
|
}
|
|
548
546
|
});
|
|
549
547
|
const user = await tx.user.create({
|
|
@@ -644,6 +642,28 @@ async function deleteUser(id) {
|
|
|
644
642
|
async function countUsers(where) {
|
|
645
643
|
return prisma.user.count({ where });
|
|
646
644
|
}
|
|
645
|
+
async function findUsers(params) {
|
|
646
|
+
const users = await prisma.user.findMany({
|
|
647
|
+
take: params.take,
|
|
648
|
+
skip: params.skip,
|
|
649
|
+
where: params.where,
|
|
650
|
+
orderBy: params.orderBy,
|
|
651
|
+
include: {
|
|
652
|
+
player: {
|
|
653
|
+
select: {
|
|
654
|
+
id: true,
|
|
655
|
+
name: true,
|
|
656
|
+
rating: true,
|
|
657
|
+
ratingDeviation: true,
|
|
658
|
+
ranking: true,
|
|
659
|
+
isRated: true,
|
|
660
|
+
eventCount: true
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
});
|
|
665
|
+
return users;
|
|
666
|
+
}
|
|
647
667
|
// Annotate the CommonJS export names for ESM import in node:
|
|
648
668
|
0 && (module.exports = {
|
|
649
669
|
connect,
|
|
@@ -663,9 +683,9 @@ async function countUsers(where) {
|
|
|
663
683
|
deleteTournament,
|
|
664
684
|
deleteUser,
|
|
665
685
|
disconnect,
|
|
666
|
-
findPlayerByEmail,
|
|
667
686
|
findPlayerByExternalId,
|
|
668
687
|
findPlayerById,
|
|
688
|
+
findPlayerByUserEmail,
|
|
669
689
|
findPlayers,
|
|
670
690
|
findResultById,
|
|
671
691
|
findResultByPlayerAndTournament,
|
|
@@ -675,6 +695,7 @@ async function countUsers(where) {
|
|
|
675
695
|
findTournaments,
|
|
676
696
|
findUserByEmail,
|
|
677
697
|
findUserById,
|
|
698
|
+
findUsers,
|
|
678
699
|
getMajorTournaments,
|
|
679
700
|
getPlayerResults,
|
|
680
701
|
getPlayerStats,
|
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
|
|
@@ -627,6 +621,15 @@ declare function deleteUser(id: string): Promise<User>;
|
|
|
627
621
|
* Counts total users
|
|
628
622
|
*/
|
|
629
623
|
declare function countUsers(where?: Prisma.UserWhereInput): Promise<number>;
|
|
624
|
+
/**
|
|
625
|
+
* Finds users with pagination and optional filtering
|
|
626
|
+
*/
|
|
627
|
+
declare function findUsers(params: {
|
|
628
|
+
take?: number;
|
|
629
|
+
skip?: number;
|
|
630
|
+
where?: Prisma.UserWhereInput;
|
|
631
|
+
orderBy?: Prisma.UserOrderByWithRelationInput;
|
|
632
|
+
}): Promise<UserWithPlayer[]>;
|
|
630
633
|
|
|
631
634
|
/**
|
|
632
635
|
* Re-export Prisma generated types
|
|
@@ -687,4 +690,4 @@ interface ConnectionStatus {
|
|
|
687
690
|
error?: string;
|
|
688
691
|
}
|
|
689
692
|
|
|
690
|
-
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
|
|
@@ -627,6 +621,15 @@ declare function deleteUser(id: string): Promise<User>;
|
|
|
627
621
|
* Counts total users
|
|
628
622
|
*/
|
|
629
623
|
declare function countUsers(where?: Prisma.UserWhereInput): Promise<number>;
|
|
624
|
+
/**
|
|
625
|
+
* Finds users with pagination and optional filtering
|
|
626
|
+
*/
|
|
627
|
+
declare function findUsers(params: {
|
|
628
|
+
take?: number;
|
|
629
|
+
skip?: number;
|
|
630
|
+
where?: Prisma.UserWhereInput;
|
|
631
|
+
orderBy?: Prisma.UserOrderByWithRelationInput;
|
|
632
|
+
}): Promise<UserWithPlayer[]>;
|
|
630
633
|
|
|
631
634
|
/**
|
|
632
635
|
* Re-export Prisma generated types
|
|
@@ -687,4 +690,4 @@ interface ConnectionStatus {
|
|
|
687
690
|
error?: string;
|
|
688
691
|
}
|
|
689
692
|
|
|
690
|
-
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({
|
|
@@ -562,6 +559,28 @@ async function deleteUser(id) {
|
|
|
562
559
|
async function countUsers(where) {
|
|
563
560
|
return prisma.user.count({ where });
|
|
564
561
|
}
|
|
562
|
+
async function findUsers(params) {
|
|
563
|
+
const users = await prisma.user.findMany({
|
|
564
|
+
take: params.take,
|
|
565
|
+
skip: params.skip,
|
|
566
|
+
where: params.where,
|
|
567
|
+
orderBy: params.orderBy,
|
|
568
|
+
include: {
|
|
569
|
+
player: {
|
|
570
|
+
select: {
|
|
571
|
+
id: true,
|
|
572
|
+
name: true,
|
|
573
|
+
rating: true,
|
|
574
|
+
ratingDeviation: true,
|
|
575
|
+
ranking: true,
|
|
576
|
+
isRated: true,
|
|
577
|
+
eventCount: true
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
});
|
|
582
|
+
return users;
|
|
583
|
+
}
|
|
565
584
|
export {
|
|
566
585
|
connect,
|
|
567
586
|
countPlayers,
|
|
@@ -580,9 +599,9 @@ export {
|
|
|
580
599
|
deleteTournament,
|
|
581
600
|
deleteUser,
|
|
582
601
|
disconnect,
|
|
583
|
-
findPlayerByEmail,
|
|
584
602
|
findPlayerByExternalId,
|
|
585
603
|
findPlayerById,
|
|
604
|
+
findPlayerByUserEmail,
|
|
586
605
|
findPlayers,
|
|
587
606
|
findResultById,
|
|
588
607
|
findResultByPlayerAndTournament,
|
|
@@ -592,6 +611,7 @@ export {
|
|
|
592
611
|
findTournaments,
|
|
593
612
|
findUserByEmail,
|
|
594
613
|
findUserById,
|
|
614
|
+
findUsers,
|
|
595
615
|
getMajorTournaments,
|
|
596
616
|
getPlayerResults,
|
|
597
617
|
getPlayerStats,
|
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])
|