refactor service types to use Prisma.validator

This commit is contained in:
Michael Dausmann
2023-04-07 00:02:59 +10:00
parent 5350a5c712
commit 59d9d0f684
3 changed files with 38 additions and 27 deletions

View File

@@ -1,5 +1,25 @@
import { User, Membership, Account } from '@prisma/client';
export type MembershipWithAccount = (Membership & {account: Account});
export type FullDBUser = (User & { memberships: MembershipWithAccount[]; });
export type MembershipWithUser = (Membership & { user: User});
export type AccountWithMembers = (Account & {members: MembershipWithUser[]});
import { Prisma } from '@prisma/client';
export const membershipWithAccount = Prisma.validator<Prisma.MembershipArgs>()({
include: { account: true },
})
export type MembershipWithAccount = Prisma.MembershipGetPayload<typeof membershipWithAccount>
export const membershipWithUser = Prisma.validator<Prisma.MembershipArgs>()({
include: { user: true },
})
export type MembershipWithUser = Prisma.MembershipGetPayload<typeof membershipWithUser>
export const fullDBUser = Prisma.validator<Prisma.UserArgs>()({
include: { memberships: {include: {
account: true
}}}
});
export type FullDBUser = Prisma.UserGetPayload<typeof fullDBUser> //TODO - I wonder if this could be replaced by just user level info
export const accountWithMembers = Prisma.validator<Prisma.AccountArgs>()({
include: { members: {include: {
user: true
}} }
})
export type AccountWithMembers = Prisma.AccountGetPayload<typeof accountWithMembers> //TODO - I wonder if this could just be a list of full memberships