mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-13 06:21:21 -05:00
* queries for play service * seed ladder day * seed ladder registered teams * ladder day get for future * seed add ladder matches * extract RegisterTab component * MyError / MySpinner * tweaks * FAQ tab * add to faq * stats tab * tabs to search params * tabs for mobile
127 lines
2.8 KiB
TypeScript
127 lines
2.8 KiB
TypeScript
import { Prisma } from ".prisma/client";
|
|
import prisma from "prisma/client";
|
|
|
|
const allRegisteredTeams = async () =>
|
|
prisma.ladderRegisteredTeam.findMany({
|
|
include: {
|
|
roster: {
|
|
select: {
|
|
id: true,
|
|
discordAvatar: true,
|
|
discordId: true,
|
|
discriminator: true,
|
|
username: true,
|
|
team: {
|
|
select: {
|
|
name: true,
|
|
nameForUrl: true,
|
|
twitterName: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
const allLadderRegisteredTeamsForMatches = async () =>
|
|
prisma.ladderRegisteredTeam.findMany({
|
|
select: {
|
|
id: true,
|
|
roster: {
|
|
select: {
|
|
id: true,
|
|
trueSkill: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
export type NextLadderDay = Prisma.PromiseReturnType<typeof nextLadderDay>;
|
|
|
|
const nextLadderDay = async () => {
|
|
return prisma.ladderDay.findFirst({
|
|
where: { date: { gte: new Date() } },
|
|
include: {
|
|
matches: {
|
|
select: {
|
|
order: true,
|
|
maplist: true,
|
|
teamAScore: true,
|
|
teamBScore: true,
|
|
players: {
|
|
select: {
|
|
team: true,
|
|
user: {
|
|
select: {
|
|
id: true,
|
|
discordAvatar: true,
|
|
discordId: true,
|
|
discriminator: true,
|
|
username: true,
|
|
team: {
|
|
select: {
|
|
name: true,
|
|
nameForUrl: true,
|
|
twitterName: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
};
|
|
|
|
export type PreviousLadderDay = Prisma.PromiseReturnType<
|
|
typeof previousLadderDay
|
|
>;
|
|
|
|
const previousLadderDay = async () => {
|
|
return prisma.ladderDay.findFirst({
|
|
where: { date: { lt: new Date() } },
|
|
orderBy: { date: "desc" },
|
|
select: {
|
|
date: true,
|
|
matches: {
|
|
select: {
|
|
order: true,
|
|
maplist: true,
|
|
teamAScore: true,
|
|
teamBScore: true,
|
|
players: {
|
|
select: {
|
|
team: true,
|
|
user: {
|
|
select: {
|
|
id: true,
|
|
discordAvatar: true,
|
|
discordId: true,
|
|
discriminator: true,
|
|
username: true,
|
|
team: {
|
|
select: {
|
|
name: true,
|
|
nameForUrl: true,
|
|
twitterName: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
};
|
|
|
|
export default {
|
|
allRegisteredTeams,
|
|
allLadderRegisteredTeamsForMatches,
|
|
nextLadderDay,
|
|
previousLadderDay,
|
|
};
|