sendou.ink/services/play.ts
Kalle 89afd0e41d
Ladder initial with FAQ (#443)
* 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
2021-04-26 15:18:27 +03:00

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,
};