From 495094e5f77265f9204a06470afd33b6e82ef472 Mon Sep 17 00:00:00 2001 From: Dustin Do Date: Sat, 20 Jul 2024 23:40:45 +0700 Subject: [PATCH] feat(api): add verify budget period config (#152) --- apps/api/prisma/schema.prisma | 8 +- apps/api/v1/services/budget.service.ts | 111 +++++++++-- packages/validation/src/prisma/index.ts | 242 +++++++++++++++--------- 3 files changed, 248 insertions(+), 113 deletions(-) diff --git a/apps/api/prisma/schema.prisma b/apps/api/prisma/schema.prisma index 5c4d541c..45cd576d 100644 --- a/apps/api/prisma/schema.prisma +++ b/apps/api/prisma/schema.prisma @@ -58,10 +58,10 @@ model Budget { preferredCurrency String type BudgetType @default(SPENDING) - periodConfig BudgetPeriodConfig? - budgetUsers BudgetUser[] - transactions Transaction[] - invitations BudgetUserInvitation[] + periodConfigs BudgetPeriodConfig[] + budgetUsers BudgetUser[] + transactions Transaction[] + invitations BudgetUserInvitation[] } enum BudgetType { diff --git a/apps/api/v1/services/budget.service.ts b/apps/api/v1/services/budget.service.ts index bb643b7d..c6c21708 100644 --- a/apps/api/v1/services/budget.service.ts +++ b/apps/api/v1/services/budget.service.ts @@ -1,9 +1,21 @@ -import { calculateBudgetPeriodStartEndDates } from '@6pm/utilities' +import { + calculateBudgetPeriodStartEndDates, + dayjsExtended, +} from '@6pm/utilities' import type { CreateBudget, UpdateBudget } from '@6pm/validation' -import { type Budget, BudgetUserPermission, type User } from '@prisma/client' +import { + type Budget, + BudgetUserPermission, + type Prisma, + type User, +} from '@prisma/client' import prisma from '../../lib/prisma' import { inviteUserToBudget } from './budget-invitation.service' +const BUDGET_INCLUDE: Prisma.BudgetInclude = { + periodConfigs: true, +} + export async function canUserCreateBudget({ // biome-ignore lint/correctness/noUnusedVariables: user, @@ -85,12 +97,16 @@ export async function isUserBudgetOwner({ } export async function findBudget({ budgetId }: { budgetId: string }) { - return prisma.budget.findUnique({ + const budget = await prisma.budget.findUnique({ where: { id: budgetId }, - include: { - periodConfig: true, - }, + include: BUDGET_INCLUDE, }) + + if (!budget) { + return null + } + + return verifyBudgetPeriods({ budget }) } export async function createBudget({ @@ -122,7 +138,7 @@ export async function createBudget({ type, description, preferredCurrency, - periodConfig: { + periodConfigs: { create: { type: period.type, amount: period.amount, @@ -137,6 +153,7 @@ export async function createBudget({ }, }, }, + include: BUDGET_INCLUDE, }) // Invite users as members @@ -156,7 +173,7 @@ export async function createBudget({ throw error } - return budget + return verifyBudgetPeriods({ budget }) } export async function updateBudget({ @@ -168,6 +185,8 @@ export async function updateBudget({ }) { const { name, description, type, preferredCurrency, period } = data + const latestPeriodConfig = await findBudgetLatestPeriodConfig({ budgetId }) + const budget = await prisma.budget.update({ where: { id: budgetId }, data: { @@ -175,18 +194,28 @@ export async function updateBudget({ description, type, preferredCurrency, - periodConfig: { + periodConfigs: { update: { - type: period?.type, - amount: period?.amount, - startDate: period?.startDate, - endDate: period?.endDate, + where: { + id: latestPeriodConfig?.id, + }, + data: { + type: period?.type, + amount: period?.amount, + startDate: period?.startDate, + endDate: period?.endDate, + }, }, }, }, + include: BUDGET_INCLUDE, }) - return budget + if (!budget) { + return null + } + + return verifyBudgetPeriods({ budget }) } export async function deleteBudget({ budgetId }: { budgetId: string }) { @@ -199,7 +228,7 @@ export async function findBudgetsOfUser({ user, permission, }: { user: User; permission?: BudgetUserPermission }) { - return prisma.budget.findMany({ + const budgets = await prisma.budget.findMany({ where: { budgetUsers: { some: { @@ -208,10 +237,10 @@ export async function findBudgetsOfUser({ }, }, }, - include: { - periodConfig: true, - }, + include: BUDGET_INCLUDE, }) + + return Promise.all(budgets.map((budget) => verifyBudgetPeriods({ budget }))) } export async function createBudgetUser({ @@ -231,3 +260,49 @@ export async function createBudgetUser({ }, }) } + +async function findBudgetLatestPeriodConfig({ + budgetId, +}: { + budgetId: string +}) { + return prisma.budgetPeriodConfig.findFirst({ + where: { + budgetId, + }, + orderBy: { + startDate: 'desc', + }, + }) +} + +async function verifyBudgetPeriods({ budget }: { budget: Budget }) { + const latestPeriodConfig = await findBudgetLatestPeriodConfig({ + budgetId: budget.id, + }) + + if (!latestPeriodConfig) { + return budget + } + + if ( + latestPeriodConfig.type === 'MONTHLY' && + latestPeriodConfig.endDate && + latestPeriodConfig.endDate < new Date() + ) { + await prisma.budgetPeriodConfig.create({ + data: { + type: 'MONTHLY', + amount: 1, + startDate: latestPeriodConfig.endDate, + endDate: dayjsExtended().endOf('month').toDate(), + budgetId: budget.id, + }, + }) + } + + return prisma.budget.findUnique({ + where: { id: budget.id }, + include: BUDGET_INCLUDE, + }) +} diff --git a/packages/validation/src/prisma/index.ts b/packages/validation/src/prisma/index.ts index a0a6af7b..31e49530 100644 --- a/packages/validation/src/prisma/index.ts +++ b/packages/validation/src/prisma/index.ts @@ -174,7 +174,7 @@ export type Budget = z.infer //------------------------------------------------------ export type BudgetRelations = { - periodConfig?: BudgetPeriodConfigWithRelations | null; + periodConfigs: BudgetPeriodConfigWithRelations[]; budgetUsers: BudgetUserWithRelations[]; transactions: TransactionWithRelations[]; invitations: BudgetUserInvitationWithRelations[]; @@ -183,7 +183,7 @@ export type BudgetRelations = { export type BudgetWithRelations = z.infer & BudgetRelations export const BudgetWithRelationsSchema: z.ZodType = BudgetSchema.merge(z.object({ - periodConfig: z.lazy(() => BudgetPeriodConfigWithRelationsSchema).nullable(), + periodConfigs: z.lazy(() => BudgetPeriodConfigWithRelationsSchema).array(), budgetUsers: z.lazy(() => BudgetUserWithRelationsSchema).array(), transactions: z.lazy(() => TransactionWithRelationsSchema).array(), invitations: z.lazy(() => BudgetUserInvitationWithRelationsSchema).array(), @@ -513,7 +513,7 @@ export const UserWalletAccountSelectSchema: z.ZodType = z.object({ - periodConfig: z.union([z.boolean(),z.lazy(() => BudgetPeriodConfigArgsSchema)]).optional(), + periodConfigs: z.union([z.boolean(),z.lazy(() => BudgetPeriodConfigFindManyArgsSchema)]).optional(), budgetUsers: z.union([z.boolean(),z.lazy(() => BudgetUserFindManyArgsSchema)]).optional(), transactions: z.union([z.boolean(),z.lazy(() => TransactionFindManyArgsSchema)]).optional(), invitations: z.union([z.boolean(),z.lazy(() => BudgetUserInvitationFindManyArgsSchema)]).optional(), @@ -530,6 +530,7 @@ export const BudgetCountOutputTypeArgsSchema: z.ZodType = z.object({ + periodConfigs: z.boolean().optional(), budgetUsers: z.boolean().optional(), transactions: z.boolean().optional(), invitations: z.boolean().optional(), @@ -543,7 +544,7 @@ export const BudgetSelectSchema: z.ZodType = z.object({ description: z.boolean().optional(), preferredCurrency: z.boolean().optional(), type: z.boolean().optional(), - periodConfig: z.union([z.boolean(),z.lazy(() => BudgetPeriodConfigArgsSchema)]).optional(), + periodConfigs: z.union([z.boolean(),z.lazy(() => BudgetPeriodConfigFindManyArgsSchema)]).optional(), budgetUsers: z.union([z.boolean(),z.lazy(() => BudgetUserFindManyArgsSchema)]).optional(), transactions: z.union([z.boolean(),z.lazy(() => TransactionFindManyArgsSchema)]).optional(), invitations: z.union([z.boolean(),z.lazy(() => BudgetUserInvitationFindManyArgsSchema)]).optional(), @@ -942,7 +943,7 @@ export const BudgetWhereInputSchema: z.ZodType = z.obje description: z.union([ z.lazy(() => StringNullableFilterSchema),z.string() ]).optional().nullable(), preferredCurrency: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), type: z.union([ z.lazy(() => EnumBudgetTypeFilterSchema),z.lazy(() => BudgetTypeSchema) ]).optional(), - periodConfig: z.union([ z.lazy(() => BudgetPeriodConfigNullableRelationFilterSchema),z.lazy(() => BudgetPeriodConfigWhereInputSchema) ]).optional().nullable(), + periodConfigs: z.lazy(() => BudgetPeriodConfigListRelationFilterSchema).optional(), budgetUsers: z.lazy(() => BudgetUserListRelationFilterSchema).optional(), transactions: z.lazy(() => TransactionListRelationFilterSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationListRelationFilterSchema).optional() @@ -956,7 +957,7 @@ export const BudgetOrderByWithRelationInputSchema: z.ZodType SortOrderSchema),z.lazy(() => SortOrderInputSchema) ]).optional(), preferredCurrency: z.lazy(() => SortOrderSchema).optional(), type: z.lazy(() => SortOrderSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigOrderByWithRelationInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigOrderByRelationAggregateInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserOrderByRelationAggregateInputSchema).optional(), transactions: z.lazy(() => TransactionOrderByRelationAggregateInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationOrderByRelationAggregateInputSchema).optional() @@ -976,7 +977,7 @@ export const BudgetWhereUniqueInputSchema: z.ZodType StringNullableFilterSchema),z.string() ]).optional().nullable(), preferredCurrency: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), type: z.union([ z.lazy(() => EnumBudgetTypeFilterSchema),z.lazy(() => BudgetTypeSchema) ]).optional(), - periodConfig: z.union([ z.lazy(() => BudgetPeriodConfigNullableRelationFilterSchema),z.lazy(() => BudgetPeriodConfigWhereInputSchema) ]).optional().nullable(), + periodConfigs: z.lazy(() => BudgetPeriodConfigListRelationFilterSchema).optional(), budgetUsers: z.lazy(() => BudgetUserListRelationFilterSchema).optional(), transactions: z.lazy(() => TransactionListRelationFilterSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationListRelationFilterSchema).optional() @@ -1862,7 +1863,7 @@ export const BudgetCreateInputSchema: z.ZodType = z.ob description: z.string().optional().nullable(), preferredCurrency: z.string(), type: z.lazy(() => BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigCreateNestedManyWithoutBudgetInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserCreateNestedManyWithoutBudgetInputSchema).optional(), transactions: z.lazy(() => TransactionCreateNestedManyWithoutBudgetInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationCreateNestedManyWithoutBudgetInputSchema).optional() @@ -1876,7 +1877,7 @@ export const BudgetUncheckedCreateInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), transactions: z.lazy(() => TransactionUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUncheckedCreateNestedManyWithoutBudgetInputSchema).optional() @@ -1890,7 +1891,7 @@ export const BudgetUpdateInputSchema: z.ZodType = z.ob description: z.union([ z.string(),z.lazy(() => NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUpdateManyWithoutBudgetNestedInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUpdateManyWithoutBudgetNestedInputSchema).optional(), transactions: z.lazy(() => TransactionUpdateManyWithoutBudgetNestedInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUpdateManyWithoutBudgetNestedInputSchema).optional() @@ -1904,7 +1905,7 @@ export const BudgetUncheckedUpdateInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), transactions: z.lazy(() => TransactionUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional() @@ -1948,7 +1949,7 @@ export const BudgetPeriodConfigCreateInputSchema: z.ZodType isValidDecimalInput(v), { message: 'Must be a Decimal' }), startDate: z.coerce.date().optional().nullable(), endDate: z.coerce.date().optional().nullable(), - budget: z.lazy(() => BudgetCreateNestedOneWithoutPeriodConfigInputSchema) + budget: z.lazy(() => BudgetCreateNestedOneWithoutPeriodConfigsInputSchema) }).strict(); export const BudgetPeriodConfigUncheckedCreateInputSchema: z.ZodType = z.object({ @@ -1970,7 +1971,7 @@ export const BudgetPeriodConfigUpdateInputSchema: z.ZodType isValidDecimalInput(v), { message: 'Must be a Decimal' }),z.lazy(() => DecimalFieldUpdateOperationsInputSchema) ]).optional(), startDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), endDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), - budget: z.lazy(() => BudgetUpdateOneRequiredWithoutPeriodConfigNestedInputSchema).optional() + budget: z.lazy(() => BudgetUpdateOneRequiredWithoutPeriodConfigsNestedInputSchema).optional() }).strict(); export const BudgetPeriodConfigUncheckedUpdateInputSchema: z.ZodType = z.object({ @@ -2778,9 +2779,14 @@ export const EnumBudgetTypeFilterSchema: z.ZodType not: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => NestedEnumBudgetTypeFilterSchema) ]).optional(), }).strict(); -export const BudgetPeriodConfigNullableRelationFilterSchema: z.ZodType = z.object({ - is: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional().nullable(), - isNot: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional().nullable() +export const BudgetPeriodConfigListRelationFilterSchema: z.ZodType = z.object({ + every: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional(), + some: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional(), + none: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional() +}).strict(); + +export const BudgetPeriodConfigOrderByRelationAggregateInputSchema: z.ZodType = z.object({ + _count: z.lazy(() => SortOrderSchema).optional() }).strict(); export const BudgetCountOrderByAggregateInputSchema: z.ZodType = z.object({ @@ -3604,10 +3610,11 @@ export const TransactionUncheckedUpdateManyWithoutWalletAccountNestedInputSchema deleteMany: z.union([ z.lazy(() => TransactionScalarWhereInputSchema),z.lazy(() => TransactionScalarWhereInputSchema).array() ]).optional(), }).strict(); -export const BudgetPeriodConfigCreateNestedOneWithoutBudgetInputSchema: z.ZodType = z.object({ - create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema) ]).optional(), - connectOrCreate: z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).optional(), - connect: z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).optional() +export const BudgetPeriodConfigCreateNestedManyWithoutBudgetInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema).array(),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).array() ]).optional(), + createMany: z.lazy(() => BudgetPeriodConfigCreateManyBudgetInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), }).strict(); export const BudgetUserCreateNestedManyWithoutBudgetInputSchema: z.ZodType = z.object({ @@ -3631,10 +3638,11 @@ export const BudgetUserInvitationCreateNestedManyWithoutBudgetInputSchema: z.Zod connect: z.union([ z.lazy(() => BudgetUserInvitationWhereUniqueInputSchema),z.lazy(() => BudgetUserInvitationWhereUniqueInputSchema).array() ]).optional(), }).strict(); -export const BudgetPeriodConfigUncheckedCreateNestedOneWithoutBudgetInputSchema: z.ZodType = z.object({ - create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema) ]).optional(), - connectOrCreate: z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).optional(), - connect: z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).optional() +export const BudgetPeriodConfigUncheckedCreateNestedManyWithoutBudgetInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema).array(),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).array() ]).optional(), + createMany: z.lazy(() => BudgetPeriodConfigCreateManyBudgetInputEnvelopeSchema).optional(), + connect: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), }).strict(); export const BudgetUserUncheckedCreateNestedManyWithoutBudgetInputSchema: z.ZodType = z.object({ @@ -3662,14 +3670,18 @@ export const EnumBudgetTypeFieldUpdateOperationsInputSchema: z.ZodType BudgetTypeSchema).optional() }).strict(); -export const BudgetPeriodConfigUpdateOneWithoutBudgetNestedInputSchema: z.ZodType = z.object({ - create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema) ]).optional(), - connectOrCreate: z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).optional(), - upsert: z.lazy(() => BudgetPeriodConfigUpsertWithoutBudgetInputSchema).optional(), - disconnect: z.union([ z.boolean(),z.lazy(() => BudgetPeriodConfigWhereInputSchema) ]).optional(), - delete: z.union([ z.boolean(),z.lazy(() => BudgetPeriodConfigWhereInputSchema) ]).optional(), - connect: z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).optional(), - update: z.union([ z.lazy(() => BudgetPeriodConfigUpdateToOneWithWhereWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpdateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedUpdateWithoutBudgetInputSchema) ]).optional(), +export const BudgetPeriodConfigUpdateManyWithoutBudgetNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema).array(),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => BudgetPeriodConfigUpsertWithWhereUniqueWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpsertWithWhereUniqueWithoutBudgetInputSchema).array() ]).optional(), + createMany: z.lazy(() => BudgetPeriodConfigCreateManyBudgetInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => BudgetPeriodConfigUpdateWithWhereUniqueWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpdateWithWhereUniqueWithoutBudgetInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => BudgetPeriodConfigUpdateManyWithWhereWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpdateManyWithWhereWithoutBudgetInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema),z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema).array() ]).optional(), }).strict(); export const BudgetUserUpdateManyWithoutBudgetNestedInputSchema: z.ZodType = z.object({ @@ -3714,14 +3726,18 @@ export const BudgetUserInvitationUpdateManyWithoutBudgetNestedInputSchema: z.Zod deleteMany: z.union([ z.lazy(() => BudgetUserInvitationScalarWhereInputSchema),z.lazy(() => BudgetUserInvitationScalarWhereInputSchema).array() ]).optional(), }).strict(); -export const BudgetPeriodConfigUncheckedUpdateOneWithoutBudgetNestedInputSchema: z.ZodType = z.object({ - create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema) ]).optional(), - connectOrCreate: z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).optional(), - upsert: z.lazy(() => BudgetPeriodConfigUpsertWithoutBudgetInputSchema).optional(), - disconnect: z.union([ z.boolean(),z.lazy(() => BudgetPeriodConfigWhereInputSchema) ]).optional(), - delete: z.union([ z.boolean(),z.lazy(() => BudgetPeriodConfigWhereInputSchema) ]).optional(), - connect: z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).optional(), - update: z.union([ z.lazy(() => BudgetPeriodConfigUpdateToOneWithWhereWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpdateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedUpdateWithoutBudgetInputSchema) ]).optional(), +export const BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema).array(),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema).array() ]).optional(), + connectOrCreate: z.union([ z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema).array() ]).optional(), + upsert: z.union([ z.lazy(() => BudgetPeriodConfigUpsertWithWhereUniqueWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpsertWithWhereUniqueWithoutBudgetInputSchema).array() ]).optional(), + createMany: z.lazy(() => BudgetPeriodConfigCreateManyBudgetInputEnvelopeSchema).optional(), + set: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + disconnect: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + delete: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + connect: z.union([ z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema),z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema).array() ]).optional(), + update: z.union([ z.lazy(() => BudgetPeriodConfigUpdateWithWhereUniqueWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpdateWithWhereUniqueWithoutBudgetInputSchema).array() ]).optional(), + updateMany: z.union([ z.lazy(() => BudgetPeriodConfigUpdateManyWithWhereWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUpdateManyWithWhereWithoutBudgetInputSchema).array() ]).optional(), + deleteMany: z.union([ z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema),z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema).array() ]).optional(), }).strict(); export const BudgetUserUncheckedUpdateManyWithoutBudgetNestedInputSchema: z.ZodType = z.object({ @@ -3766,9 +3782,9 @@ export const BudgetUserInvitationUncheckedUpdateManyWithoutBudgetNestedInputSche deleteMany: z.union([ z.lazy(() => BudgetUserInvitationScalarWhereInputSchema),z.lazy(() => BudgetUserInvitationScalarWhereInputSchema).array() ]).optional(), }).strict(); -export const BudgetCreateNestedOneWithoutPeriodConfigInputSchema: z.ZodType = z.object({ - create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigInputSchema) ]).optional(), - connectOrCreate: z.lazy(() => BudgetCreateOrConnectWithoutPeriodConfigInputSchema).optional(), +export const BudgetCreateNestedOneWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => BudgetCreateOrConnectWithoutPeriodConfigsInputSchema).optional(), connect: z.lazy(() => BudgetWhereUniqueInputSchema).optional() }).strict(); @@ -3788,12 +3804,12 @@ export const NullableDateTimeFieldUpdateOperationsInputSchema: z.ZodType = z.object({ - create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigInputSchema) ]).optional(), - connectOrCreate: z.lazy(() => BudgetCreateOrConnectWithoutPeriodConfigInputSchema).optional(), - upsert: z.lazy(() => BudgetUpsertWithoutPeriodConfigInputSchema).optional(), +export const BudgetUpdateOneRequiredWithoutPeriodConfigsNestedInputSchema: z.ZodType = z.object({ + create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigsInputSchema) ]).optional(), + connectOrCreate: z.lazy(() => BudgetCreateOrConnectWithoutPeriodConfigsInputSchema).optional(), + upsert: z.lazy(() => BudgetUpsertWithoutPeriodConfigsInputSchema).optional(), connect: z.lazy(() => BudgetWhereUniqueInputSchema).optional(), - update: z.union([ z.lazy(() => BudgetUpdateToOneWithWhereWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUpdateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedUpdateWithoutPeriodConfigInputSchema) ]).optional(), + update: z.union([ z.lazy(() => BudgetUpdateToOneWithWhereWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUpdateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedUpdateWithoutPeriodConfigsInputSchema) ]).optional(), }).strict(); export const UserCreateNestedOneWithoutBudgetUsersInputSchema: z.ZodType = z.object({ @@ -4881,6 +4897,11 @@ export const BudgetPeriodConfigCreateOrConnectWithoutBudgetInputSchema: z.ZodTyp create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema) ]), }).strict(); +export const BudgetPeriodConfigCreateManyBudgetInputEnvelopeSchema: z.ZodType = z.object({ + data: z.union([ z.lazy(() => BudgetPeriodConfigCreateManyBudgetInputSchema),z.lazy(() => BudgetPeriodConfigCreateManyBudgetInputSchema).array() ]), + skipDuplicates: z.boolean().optional() +}).strict(); + export const BudgetUserCreateWithoutBudgetInputSchema: z.ZodType = z.object({ id: z.string().cuid().optional(), createdAt: z.coerce.date().optional(), @@ -4979,35 +5000,34 @@ export const BudgetUserInvitationCreateManyBudgetInputEnvelopeSchema: z.ZodType< skipDuplicates: z.boolean().optional() }).strict(); -export const BudgetPeriodConfigUpsertWithoutBudgetInputSchema: z.ZodType = z.object({ +export const BudgetPeriodConfigUpsertWithWhereUniqueWithoutBudgetInputSchema: z.ZodType = z.object({ + where: z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema), update: z.union([ z.lazy(() => BudgetPeriodConfigUpdateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedUpdateWithoutBudgetInputSchema) ]), create: z.union([ z.lazy(() => BudgetPeriodConfigCreateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedCreateWithoutBudgetInputSchema) ]), - where: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional() }).strict(); -export const BudgetPeriodConfigUpdateToOneWithWhereWithoutBudgetInputSchema: z.ZodType = z.object({ - where: z.lazy(() => BudgetPeriodConfigWhereInputSchema).optional(), +export const BudgetPeriodConfigUpdateWithWhereUniqueWithoutBudgetInputSchema: z.ZodType = z.object({ + where: z.lazy(() => BudgetPeriodConfigWhereUniqueInputSchema), data: z.union([ z.lazy(() => BudgetPeriodConfigUpdateWithoutBudgetInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedUpdateWithoutBudgetInputSchema) ]), }).strict(); -export const BudgetPeriodConfigUpdateWithoutBudgetInputSchema: z.ZodType = z.object({ - id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), - createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), - updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), - type: z.union([ z.lazy(() => BudgetPeriodTypeSchema),z.lazy(() => EnumBudgetPeriodTypeFieldUpdateOperationsInputSchema) ]).optional(), - amount: z.union([ z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }),z.lazy(() => DecimalFieldUpdateOperationsInputSchema) ]).optional(), - startDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), - endDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), +export const BudgetPeriodConfigUpdateManyWithWhereWithoutBudgetInputSchema: z.ZodType = z.object({ + where: z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema), + data: z.union([ z.lazy(() => BudgetPeriodConfigUpdateManyMutationInputSchema),z.lazy(() => BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetInputSchema) ]), }).strict(); -export const BudgetPeriodConfigUncheckedUpdateWithoutBudgetInputSchema: z.ZodType = z.object({ - id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), - createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), - updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), - type: z.union([ z.lazy(() => BudgetPeriodTypeSchema),z.lazy(() => EnumBudgetPeriodTypeFieldUpdateOperationsInputSchema) ]).optional(), - amount: z.union([ z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }),z.lazy(() => DecimalFieldUpdateOperationsInputSchema) ]).optional(), - startDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), - endDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), +export const BudgetPeriodConfigScalarWhereInputSchema: z.ZodType = z.object({ + AND: z.union([ z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema),z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema).array() ]).optional(), + OR: z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema).array().optional(), + NOT: z.union([ z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema),z.lazy(() => BudgetPeriodConfigScalarWhereInputSchema).array() ]).optional(), + id: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), + createdAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + updatedAt: z.union([ z.lazy(() => DateTimeFilterSchema),z.coerce.date() ]).optional(), + type: z.union([ z.lazy(() => EnumBudgetPeriodTypeFilterSchema),z.lazy(() => BudgetPeriodTypeSchema) ]).optional(), + amount: z.union([ z.lazy(() => DecimalFilterSchema),z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }) ]).optional(), + startDate: z.union([ z.lazy(() => DateTimeNullableFilterSchema),z.coerce.date() ]).optional().nullable(), + endDate: z.union([ z.lazy(() => DateTimeNullableFilterSchema),z.coerce.date() ]).optional().nullable(), + budgetId: z.union([ z.lazy(() => StringFilterSchema),z.string() ]).optional(), }).strict(); export const BudgetUserUpsertWithWhereUniqueWithoutBudgetInputSchema: z.ZodType = z.object({ @@ -5058,7 +5078,7 @@ export const BudgetUserInvitationUpdateManyWithWhereWithoutBudgetInputSchema: z. data: z.union([ z.lazy(() => BudgetUserInvitationUpdateManyMutationInputSchema),z.lazy(() => BudgetUserInvitationUncheckedUpdateManyWithoutBudgetInputSchema) ]), }).strict(); -export const BudgetCreateWithoutPeriodConfigInputSchema: z.ZodType = z.object({ +export const BudgetCreateWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ id: z.string().cuid().optional(), createdAt: z.coerce.date().optional(), updatedAt: z.coerce.date().optional(), @@ -5071,7 +5091,7 @@ export const BudgetCreateWithoutPeriodConfigInputSchema: z.ZodType BudgetUserInvitationCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); -export const BudgetUncheckedCreateWithoutPeriodConfigInputSchema: z.ZodType = z.object({ +export const BudgetUncheckedCreateWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ id: z.string().cuid().optional(), createdAt: z.coerce.date().optional(), updatedAt: z.coerce.date().optional(), @@ -5084,23 +5104,23 @@ export const BudgetUncheckedCreateWithoutPeriodConfigInputSchema: z.ZodType BudgetUserInvitationUncheckedCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); -export const BudgetCreateOrConnectWithoutPeriodConfigInputSchema: z.ZodType = z.object({ +export const BudgetCreateOrConnectWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ where: z.lazy(() => BudgetWhereUniqueInputSchema), - create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigInputSchema) ]), + create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigsInputSchema) ]), }).strict(); -export const BudgetUpsertWithoutPeriodConfigInputSchema: z.ZodType = z.object({ - update: z.union([ z.lazy(() => BudgetUpdateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedUpdateWithoutPeriodConfigInputSchema) ]), - create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigInputSchema) ]), +export const BudgetUpsertWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ + update: z.union([ z.lazy(() => BudgetUpdateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedUpdateWithoutPeriodConfigsInputSchema) ]), + create: z.union([ z.lazy(() => BudgetCreateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedCreateWithoutPeriodConfigsInputSchema) ]), where: z.lazy(() => BudgetWhereInputSchema).optional() }).strict(); -export const BudgetUpdateToOneWithWhereWithoutPeriodConfigInputSchema: z.ZodType = z.object({ +export const BudgetUpdateToOneWithWhereWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ where: z.lazy(() => BudgetWhereInputSchema).optional(), - data: z.union([ z.lazy(() => BudgetUpdateWithoutPeriodConfigInputSchema),z.lazy(() => BudgetUncheckedUpdateWithoutPeriodConfigInputSchema) ]), + data: z.union([ z.lazy(() => BudgetUpdateWithoutPeriodConfigsInputSchema),z.lazy(() => BudgetUncheckedUpdateWithoutPeriodConfigsInputSchema) ]), }).strict(); -export const BudgetUpdateWithoutPeriodConfigInputSchema: z.ZodType = z.object({ +export const BudgetUpdateWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), @@ -5113,7 +5133,7 @@ export const BudgetUpdateWithoutPeriodConfigInputSchema: z.ZodType BudgetUserInvitationUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); -export const BudgetUncheckedUpdateWithoutPeriodConfigInputSchema: z.ZodType = z.object({ +export const BudgetUncheckedUpdateWithoutPeriodConfigsInputSchema: z.ZodType = z.object({ id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), @@ -5165,7 +5185,7 @@ export const BudgetCreateWithoutBudgetUsersInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigCreateNestedManyWithoutBudgetInputSchema).optional(), transactions: z.lazy(() => TransactionCreateNestedManyWithoutBudgetInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); @@ -5178,7 +5198,7 @@ export const BudgetUncheckedCreateWithoutBudgetUsersInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), transactions: z.lazy(() => TransactionUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUncheckedCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); @@ -5244,7 +5264,7 @@ export const BudgetUpdateWithoutBudgetUsersInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUpdateManyWithoutBudgetNestedInputSchema).optional(), transactions: z.lazy(() => TransactionUpdateManyWithoutBudgetNestedInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); @@ -5257,7 +5277,7 @@ export const BudgetUncheckedUpdateWithoutBudgetUsersInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), transactions: z.lazy(() => TransactionUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); @@ -5301,7 +5321,7 @@ export const BudgetCreateWithoutInvitationsInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigCreateNestedManyWithoutBudgetInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserCreateNestedManyWithoutBudgetInputSchema).optional(), transactions: z.lazy(() => TransactionCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); @@ -5314,7 +5334,7 @@ export const BudgetUncheckedCreateWithoutInvitationsInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), transactions: z.lazy(() => TransactionUncheckedCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); @@ -5408,7 +5428,7 @@ export const BudgetUpdateWithoutInvitationsInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUpdateManyWithoutBudgetNestedInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUpdateManyWithoutBudgetNestedInputSchema).optional(), transactions: z.lazy(() => TransactionUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); @@ -5421,7 +5441,7 @@ export const BudgetUncheckedUpdateWithoutInvitationsInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), transactions: z.lazy(() => TransactionUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); @@ -5628,7 +5648,7 @@ export const BudgetCreateWithoutTransactionsInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigCreateNestedManyWithoutBudgetInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserCreateNestedManyWithoutBudgetInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); @@ -5641,7 +5661,7 @@ export const BudgetUncheckedCreateWithoutTransactionsInputSchema: z.ZodType BudgetTypeSchema).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedOneWithoutBudgetInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUncheckedCreateNestedManyWithoutBudgetInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUncheckedCreateNestedManyWithoutBudgetInputSchema).optional() }).strict(); @@ -5769,7 +5789,7 @@ export const BudgetUpdateWithoutTransactionsInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUpdateManyWithoutBudgetNestedInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUpdateManyWithoutBudgetNestedInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); @@ -5782,7 +5802,7 @@ export const BudgetUncheckedUpdateWithoutTransactionsInputSchema: z.ZodType NullableStringFieldUpdateOperationsInputSchema) ]).optional().nullable(), preferredCurrency: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), type: z.union([ z.lazy(() => BudgetTypeSchema),z.lazy(() => EnumBudgetTypeFieldUpdateOperationsInputSchema) ]).optional(), - periodConfig: z.lazy(() => BudgetPeriodConfigUncheckedUpdateOneWithoutBudgetNestedInputSchema).optional(), + periodConfigs: z.lazy(() => BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), budgetUsers: z.lazy(() => BudgetUserUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional(), invitations: z.lazy(() => BudgetUserInvitationUncheckedUpdateManyWithoutBudgetNestedInputSchema).optional() }).strict(); @@ -6395,6 +6415,16 @@ export const TransactionUncheckedUpdateManyWithoutWalletAccountInputSchema: z.Zo createdByUserId: z.union([ z.string(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), }).strict(); +export const BudgetPeriodConfigCreateManyBudgetInputSchema: z.ZodType = z.object({ + id: z.string().cuid().optional(), + createdAt: z.coerce.date().optional(), + updatedAt: z.coerce.date().optional(), + type: z.lazy(() => BudgetPeriodTypeSchema), + amount: z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }), + startDate: z.coerce.date().optional().nullable(), + endDate: z.coerce.date().optional().nullable() +}).strict(); + export const BudgetUserCreateManyBudgetInputSchema: z.ZodType = z.object({ id: z.string().cuid().optional(), createdAt: z.coerce.date().optional(), @@ -6428,6 +6458,36 @@ export const BudgetUserInvitationCreateManyBudgetInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => BudgetPeriodTypeSchema),z.lazy(() => EnumBudgetPeriodTypeFieldUpdateOperationsInputSchema) ]).optional(), + amount: z.union([ z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }),z.lazy(() => DecimalFieldUpdateOperationsInputSchema) ]).optional(), + startDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + endDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const BudgetPeriodConfigUncheckedUpdateWithoutBudgetInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => BudgetPeriodTypeSchema),z.lazy(() => EnumBudgetPeriodTypeFieldUpdateOperationsInputSchema) ]).optional(), + amount: z.union([ z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }),z.lazy(() => DecimalFieldUpdateOperationsInputSchema) ]).optional(), + startDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + endDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + +export const BudgetPeriodConfigUncheckedUpdateManyWithoutBudgetInputSchema: z.ZodType = z.object({ + id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), + createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + updatedAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(), + type: z.union([ z.lazy(() => BudgetPeriodTypeSchema),z.lazy(() => EnumBudgetPeriodTypeFieldUpdateOperationsInputSchema) ]).optional(), + amount: z.union([ z.union([z.number(),z.string(),z.instanceof(Decimal),z.instanceof(Prisma.Decimal),DecimalJsLikeSchema,]).refine((v) => isValidDecimalInput(v), { message: 'Must be a Decimal' }),z.lazy(() => DecimalFieldUpdateOperationsInputSchema) ]).optional(), + startDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), + endDate: z.union([ z.coerce.date(),z.lazy(() => NullableDateTimeFieldUpdateOperationsInputSchema) ]).optional().nullable(), +}).strict(); + export const BudgetUserUpdateWithoutBudgetInputSchema: z.ZodType = z.object({ id: z.union([ z.string().cuid(),z.lazy(() => StringFieldUpdateOperationsInputSchema) ]).optional(), createdAt: z.union([ z.coerce.date(),z.lazy(() => DateTimeFieldUpdateOperationsInputSchema) ]).optional(),