Add deck generation and study flow improvements
All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m22s

This commit is contained in:
Elijah 2026-07-13 14:56:33 -07:00
parent d6f3502cb1
commit 7b90409f2e
36 changed files with 8683 additions and 31 deletions

View file

@ -217,6 +217,7 @@ export type FlashcardWhereInput = {
back?: Prisma.StringFilter<"Flashcard"> | string
sortOrder?: Prisma.IntFilter<"Flashcard"> | number
deck?: Prisma.XOR<Prisma.DeckScalarRelationFilter, Prisma.DeckWhereInput>
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateListRelationFilter
}
export type FlashcardOrderByWithRelationInput = {
@ -226,6 +227,7 @@ export type FlashcardOrderByWithRelationInput = {
back?: Prisma.SortOrder
sortOrder?: Prisma.SortOrder
deck?: Prisma.DeckOrderByWithRelationInput
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateOrderByRelationAggregateInput
}
export type FlashcardWhereUniqueInput = Prisma.AtLeast<{
@ -238,6 +240,7 @@ export type FlashcardWhereUniqueInput = Prisma.AtLeast<{
back?: Prisma.StringFilter<"Flashcard"> | string
sortOrder?: Prisma.IntFilter<"Flashcard"> | number
deck?: Prisma.XOR<Prisma.DeckScalarRelationFilter, Prisma.DeckWhereInput>
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateListRelationFilter
}, "id">
export type FlashcardOrderByWithAggregationInput = {
@ -270,6 +273,7 @@ export type FlashcardCreateInput = {
back: string
sortOrder?: number
deck: Prisma.DeckCreateNestedOneWithoutCardsInput
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateCreateNestedManyWithoutFlashcardInput
}
export type FlashcardUncheckedCreateInput = {
@ -278,6 +282,7 @@ export type FlashcardUncheckedCreateInput = {
front: string
back: string
sortOrder?: number
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateUncheckedCreateNestedManyWithoutFlashcardInput
}
export type FlashcardUpdateInput = {
@ -286,6 +291,7 @@ export type FlashcardUpdateInput = {
back?: Prisma.StringFieldUpdateOperationsInput | string
sortOrder?: Prisma.IntFieldUpdateOperationsInput | number
deck?: Prisma.DeckUpdateOneRequiredWithoutCardsNestedInput
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateUpdateManyWithoutFlashcardNestedInput
}
export type FlashcardUncheckedUpdateInput = {
@ -294,6 +300,7 @@ export type FlashcardUncheckedUpdateInput = {
front?: Prisma.StringFieldUpdateOperationsInput | string
back?: Prisma.StringFieldUpdateOperationsInput | string
sortOrder?: Prisma.IntFieldUpdateOperationsInput | number
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateUncheckedUpdateManyWithoutFlashcardNestedInput
}
export type FlashcardCreateManyInput = {
@ -361,6 +368,11 @@ export type FlashcardSumOrderByAggregateInput = {
sortOrder?: Prisma.SortOrder
}
export type FlashcardScalarRelationFilter = {
is?: Prisma.FlashcardWhereInput
isNot?: Prisma.FlashcardWhereInput
}
export type FlashcardCreateNestedManyWithoutDeckInput = {
create?: Prisma.XOR<Prisma.FlashcardCreateWithoutDeckInput, Prisma.FlashcardUncheckedCreateWithoutDeckInput> | Prisma.FlashcardCreateWithoutDeckInput[] | Prisma.FlashcardUncheckedCreateWithoutDeckInput[]
connectOrCreate?: Prisma.FlashcardCreateOrConnectWithoutDeckInput | Prisma.FlashcardCreateOrConnectWithoutDeckInput[]
@ -403,11 +415,26 @@ export type FlashcardUncheckedUpdateManyWithoutDeckNestedInput = {
deleteMany?: Prisma.FlashcardScalarWhereInput | Prisma.FlashcardScalarWhereInput[]
}
export type FlashcardCreateNestedOneWithoutSpacedRepetitionStatesInput = {
create?: Prisma.XOR<Prisma.FlashcardCreateWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUncheckedCreateWithoutSpacedRepetitionStatesInput>
connectOrCreate?: Prisma.FlashcardCreateOrConnectWithoutSpacedRepetitionStatesInput
connect?: Prisma.FlashcardWhereUniqueInput
}
export type FlashcardUpdateOneRequiredWithoutSpacedRepetitionStatesNestedInput = {
create?: Prisma.XOR<Prisma.FlashcardCreateWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUncheckedCreateWithoutSpacedRepetitionStatesInput>
connectOrCreate?: Prisma.FlashcardCreateOrConnectWithoutSpacedRepetitionStatesInput
upsert?: Prisma.FlashcardUpsertWithoutSpacedRepetitionStatesInput
connect?: Prisma.FlashcardWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.FlashcardUpdateToOneWithWhereWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUpdateWithoutSpacedRepetitionStatesInput>, Prisma.FlashcardUncheckedUpdateWithoutSpacedRepetitionStatesInput>
}
export type FlashcardCreateWithoutDeckInput = {
id?: string
front: string
back: string
sortOrder?: number
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateCreateNestedManyWithoutFlashcardInput
}
export type FlashcardUncheckedCreateWithoutDeckInput = {
@ -415,6 +442,7 @@ export type FlashcardUncheckedCreateWithoutDeckInput = {
front: string
back: string
sortOrder?: number
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateUncheckedCreateNestedManyWithoutFlashcardInput
}
export type FlashcardCreateOrConnectWithoutDeckInput = {
@ -453,6 +481,54 @@ export type FlashcardScalarWhereInput = {
sortOrder?: Prisma.IntFilter<"Flashcard"> | number
}
export type FlashcardCreateWithoutSpacedRepetitionStatesInput = {
id?: string
front: string
back: string
sortOrder?: number
deck: Prisma.DeckCreateNestedOneWithoutCardsInput
}
export type FlashcardUncheckedCreateWithoutSpacedRepetitionStatesInput = {
id?: string
deckId: string
front: string
back: string
sortOrder?: number
}
export type FlashcardCreateOrConnectWithoutSpacedRepetitionStatesInput = {
where: Prisma.FlashcardWhereUniqueInput
create: Prisma.XOR<Prisma.FlashcardCreateWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUncheckedCreateWithoutSpacedRepetitionStatesInput>
}
export type FlashcardUpsertWithoutSpacedRepetitionStatesInput = {
update: Prisma.XOR<Prisma.FlashcardUpdateWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUncheckedUpdateWithoutSpacedRepetitionStatesInput>
create: Prisma.XOR<Prisma.FlashcardCreateWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUncheckedCreateWithoutSpacedRepetitionStatesInput>
where?: Prisma.FlashcardWhereInput
}
export type FlashcardUpdateToOneWithWhereWithoutSpacedRepetitionStatesInput = {
where?: Prisma.FlashcardWhereInput
data: Prisma.XOR<Prisma.FlashcardUpdateWithoutSpacedRepetitionStatesInput, Prisma.FlashcardUncheckedUpdateWithoutSpacedRepetitionStatesInput>
}
export type FlashcardUpdateWithoutSpacedRepetitionStatesInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
front?: Prisma.StringFieldUpdateOperationsInput | string
back?: Prisma.StringFieldUpdateOperationsInput | string
sortOrder?: Prisma.IntFieldUpdateOperationsInput | number
deck?: Prisma.DeckUpdateOneRequiredWithoutCardsNestedInput
}
export type FlashcardUncheckedUpdateWithoutSpacedRepetitionStatesInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
deckId?: Prisma.StringFieldUpdateOperationsInput | string
front?: Prisma.StringFieldUpdateOperationsInput | string
back?: Prisma.StringFieldUpdateOperationsInput | string
sortOrder?: Prisma.IntFieldUpdateOperationsInput | number
}
export type FlashcardCreateManyDeckInput = {
id?: string
front: string
@ -465,6 +541,7 @@ export type FlashcardUpdateWithoutDeckInput = {
front?: Prisma.StringFieldUpdateOperationsInput | string
back?: Prisma.StringFieldUpdateOperationsInput | string
sortOrder?: Prisma.IntFieldUpdateOperationsInput | number
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateUpdateManyWithoutFlashcardNestedInput
}
export type FlashcardUncheckedUpdateWithoutDeckInput = {
@ -472,6 +549,7 @@ export type FlashcardUncheckedUpdateWithoutDeckInput = {
front?: Prisma.StringFieldUpdateOperationsInput | string
back?: Prisma.StringFieldUpdateOperationsInput | string
sortOrder?: Prisma.IntFieldUpdateOperationsInput | number
spacedRepetitionStates?: Prisma.SpacedRepetitionCardStateUncheckedUpdateManyWithoutFlashcardNestedInput
}
export type FlashcardUncheckedUpdateManyWithoutDeckInput = {
@ -482,6 +560,35 @@ export type FlashcardUncheckedUpdateManyWithoutDeckInput = {
}
/**
* Count Type FlashcardCountOutputType
*/
export type FlashcardCountOutputType = {
spacedRepetitionStates: number
}
export type FlashcardCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
spacedRepetitionStates?: boolean | FlashcardCountOutputTypeCountSpacedRepetitionStatesArgs
}
/**
* FlashcardCountOutputType without action
*/
export type FlashcardCountOutputTypeDefaultArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
/**
* Select specific fields to fetch from the FlashcardCountOutputType
*/
select?: Prisma.FlashcardCountOutputTypeSelect<ExtArgs> | null
}
/**
* FlashcardCountOutputType without action
*/
export type FlashcardCountOutputTypeCountSpacedRepetitionStatesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
where?: Prisma.SpacedRepetitionCardStateWhereInput
}
export type FlashcardSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
id?: boolean
@ -490,6 +597,8 @@ export type FlashcardSelect<ExtArgs extends runtime.Types.Extensions.InternalArg
back?: boolean
sortOrder?: boolean
deck?: boolean | Prisma.DeckDefaultArgs<ExtArgs>
spacedRepetitionStates?: boolean | Prisma.Flashcard$spacedRepetitionStatesArgs<ExtArgs>
_count?: boolean | Prisma.FlashcardCountOutputTypeDefaultArgs<ExtArgs>
}, ExtArgs["result"]["flashcard"]>
export type FlashcardSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetSelect<{
@ -521,6 +630,8 @@ export type FlashcardSelectScalar = {
export type FlashcardOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "deckId" | "front" | "back" | "sortOrder", ExtArgs["result"]["flashcard"]>
export type FlashcardInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
deck?: boolean | Prisma.DeckDefaultArgs<ExtArgs>
spacedRepetitionStates?: boolean | Prisma.Flashcard$spacedRepetitionStatesArgs<ExtArgs>
_count?: boolean | Prisma.FlashcardCountOutputTypeDefaultArgs<ExtArgs>
}
export type FlashcardIncludeCreateManyAndReturn<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
deck?: boolean | Prisma.DeckDefaultArgs<ExtArgs>
@ -533,6 +644,7 @@ export type $FlashcardPayload<ExtArgs extends runtime.Types.Extensions.InternalA
name: "Flashcard"
objects: {
deck: Prisma.$DeckPayload<ExtArgs>
spacedRepetitionStates: Prisma.$SpacedRepetitionCardStatePayload<ExtArgs>[]
}
scalars: runtime.Types.Extensions.GetPayloadResult<{
id: string
@ -935,6 +1047,7 @@ readonly fields: FlashcardFieldRefs;
export interface Prisma__FlashcardClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
readonly [Symbol.toStringTag]: "PrismaPromise"
deck<T extends Prisma.DeckDefaultArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.DeckDefaultArgs<ExtArgs>>): Prisma.Prisma__DeckClient<runtime.Types.Result.GetResult<Prisma.$DeckPayload<ExtArgs>, T, "findUniqueOrThrow", GlobalOmitOptions> | Null, Null, ExtArgs, GlobalOmitOptions>
spacedRepetitionStates<T extends Prisma.Flashcard$spacedRepetitionStatesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.Flashcard$spacedRepetitionStatesArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$SpacedRepetitionCardStatePayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
/**
* Attaches callbacks for the resolution and/or rejection of the Promise.
* @param onfulfilled The callback to execute when the Promise is resolved.
@ -1367,6 +1480,30 @@ export type FlashcardDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.Int
limit?: number
}
/**
* Flashcard.spacedRepetitionStates
*/
export type Flashcard$spacedRepetitionStatesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
/**
* Select specific fields to fetch from the SpacedRepetitionCardState
*/
select?: Prisma.SpacedRepetitionCardStateSelect<ExtArgs> | null
/**
* Omit specific fields from the SpacedRepetitionCardState
*/
omit?: Prisma.SpacedRepetitionCardStateOmit<ExtArgs> | null
/**
* Choose, which related nodes to fetch as well
*/
include?: Prisma.SpacedRepetitionCardStateInclude<ExtArgs> | null
where?: Prisma.SpacedRepetitionCardStateWhereInput
orderBy?: Prisma.SpacedRepetitionCardStateOrderByWithRelationInput | Prisma.SpacedRepetitionCardStateOrderByWithRelationInput[]
cursor?: Prisma.SpacedRepetitionCardStateWhereUniqueInput
take?: number
skip?: number
distinct?: Prisma.SpacedRepetitionCardStateScalarFieldEnum | Prisma.SpacedRepetitionCardStateScalarFieldEnum[]
}
/**
* Flashcard without action
*/