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

@ -396,7 +396,10 @@ export const ModelName = {
AuthSecurity: 'AuthSecurity',
Setting: 'Setting',
StudyActivity: 'StudyActivity',
MaterialGroup: 'MaterialGroup'
MaterialGroup: 'MaterialGroup',
SpacedRepetitionSet: 'SpacedRepetitionSet',
SpacedRepetitionSetDeck: 'SpacedRepetitionSetDeck',
SpacedRepetitionCardState: 'SpacedRepetitionCardState'
} as const
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
@ -412,7 +415,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
omit: GlobalOmitOptions
}
meta: {
modelProps: "class" | "deck" | "flashcard" | "quizSet" | "question" | "answerOption" | "studyProgress" | "quizAttempt" | "shareLink" | "authSecurity" | "setting" | "studyActivity" | "materialGroup"
modelProps: "class" | "deck" | "flashcard" | "quizSet" | "question" | "answerOption" | "studyProgress" | "quizAttempt" | "shareLink" | "authSecurity" | "setting" | "studyActivity" | "materialGroup" | "spacedRepetitionSet" | "spacedRepetitionSetDeck" | "spacedRepetitionCardState"
txIsolationLevel: TransactionIsolationLevel
}
model: {
@ -1378,6 +1381,228 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
}
}
}
SpacedRepetitionSet: {
payload: Prisma.$SpacedRepetitionSetPayload<ExtArgs>
fields: Prisma.SpacedRepetitionSetFieldRefs
operations: {
findUnique: {
args: Prisma.SpacedRepetitionSetFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload> | null
}
findUniqueOrThrow: {
args: Prisma.SpacedRepetitionSetFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>
}
findFirst: {
args: Prisma.SpacedRepetitionSetFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload> | null
}
findFirstOrThrow: {
args: Prisma.SpacedRepetitionSetFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>
}
findMany: {
args: Prisma.SpacedRepetitionSetFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>[]
}
create: {
args: Prisma.SpacedRepetitionSetCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>
}
createMany: {
args: Prisma.SpacedRepetitionSetCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.SpacedRepetitionSetCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>[]
}
delete: {
args: Prisma.SpacedRepetitionSetDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>
}
update: {
args: Prisma.SpacedRepetitionSetUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>
}
deleteMany: {
args: Prisma.SpacedRepetitionSetDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.SpacedRepetitionSetUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.SpacedRepetitionSetUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>[]
}
upsert: {
args: Prisma.SpacedRepetitionSetUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetPayload>
}
aggregate: {
args: Prisma.SpacedRepetitionSetAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateSpacedRepetitionSet>
}
groupBy: {
args: Prisma.SpacedRepetitionSetGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.SpacedRepetitionSetGroupByOutputType>[]
}
count: {
args: Prisma.SpacedRepetitionSetCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.SpacedRepetitionSetCountAggregateOutputType> | number
}
}
}
SpacedRepetitionSetDeck: {
payload: Prisma.$SpacedRepetitionSetDeckPayload<ExtArgs>
fields: Prisma.SpacedRepetitionSetDeckFieldRefs
operations: {
findUnique: {
args: Prisma.SpacedRepetitionSetDeckFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload> | null
}
findUniqueOrThrow: {
args: Prisma.SpacedRepetitionSetDeckFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>
}
findFirst: {
args: Prisma.SpacedRepetitionSetDeckFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload> | null
}
findFirstOrThrow: {
args: Prisma.SpacedRepetitionSetDeckFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>
}
findMany: {
args: Prisma.SpacedRepetitionSetDeckFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>[]
}
create: {
args: Prisma.SpacedRepetitionSetDeckCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>
}
createMany: {
args: Prisma.SpacedRepetitionSetDeckCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.SpacedRepetitionSetDeckCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>[]
}
delete: {
args: Prisma.SpacedRepetitionSetDeckDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>
}
update: {
args: Prisma.SpacedRepetitionSetDeckUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>
}
deleteMany: {
args: Prisma.SpacedRepetitionSetDeckDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.SpacedRepetitionSetDeckUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.SpacedRepetitionSetDeckUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>[]
}
upsert: {
args: Prisma.SpacedRepetitionSetDeckUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionSetDeckPayload>
}
aggregate: {
args: Prisma.SpacedRepetitionSetDeckAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateSpacedRepetitionSetDeck>
}
groupBy: {
args: Prisma.SpacedRepetitionSetDeckGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.SpacedRepetitionSetDeckGroupByOutputType>[]
}
count: {
args: Prisma.SpacedRepetitionSetDeckCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.SpacedRepetitionSetDeckCountAggregateOutputType> | number
}
}
}
SpacedRepetitionCardState: {
payload: Prisma.$SpacedRepetitionCardStatePayload<ExtArgs>
fields: Prisma.SpacedRepetitionCardStateFieldRefs
operations: {
findUnique: {
args: Prisma.SpacedRepetitionCardStateFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload> | null
}
findUniqueOrThrow: {
args: Prisma.SpacedRepetitionCardStateFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>
}
findFirst: {
args: Prisma.SpacedRepetitionCardStateFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload> | null
}
findFirstOrThrow: {
args: Prisma.SpacedRepetitionCardStateFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>
}
findMany: {
args: Prisma.SpacedRepetitionCardStateFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>[]
}
create: {
args: Prisma.SpacedRepetitionCardStateCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>
}
createMany: {
args: Prisma.SpacedRepetitionCardStateCreateManyArgs<ExtArgs>
result: BatchPayload
}
createManyAndReturn: {
args: Prisma.SpacedRepetitionCardStateCreateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>[]
}
delete: {
args: Prisma.SpacedRepetitionCardStateDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>
}
update: {
args: Prisma.SpacedRepetitionCardStateUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>
}
deleteMany: {
args: Prisma.SpacedRepetitionCardStateDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.SpacedRepetitionCardStateUpdateManyArgs<ExtArgs>
result: BatchPayload
}
updateManyAndReturn: {
args: Prisma.SpacedRepetitionCardStateUpdateManyAndReturnArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>[]
}
upsert: {
args: Prisma.SpacedRepetitionCardStateUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$SpacedRepetitionCardStatePayload>
}
aggregate: {
args: Prisma.SpacedRepetitionCardStateAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateSpacedRepetitionCardState>
}
groupBy: {
args: Prisma.SpacedRepetitionCardStateGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.SpacedRepetitionCardStateGroupByOutputType>[]
}
count: {
args: Prisma.SpacedRepetitionCardStateCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.SpacedRepetitionCardStateCountAggregateOutputType> | number
}
}
}
}
} & {
other: {
@ -1566,6 +1791,52 @@ export const MaterialGroupScalarFieldEnum = {
export type MaterialGroupScalarFieldEnum = (typeof MaterialGroupScalarFieldEnum)[keyof typeof MaterialGroupScalarFieldEnum]
export const SpacedRepetitionSetScalarFieldEnum = {
id: 'id',
classId: 'classId',
name: 'name',
description: 'description',
newCardsPerDay: 'newCardsPerDay',
sortOrder: 'sortOrder',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
} as const
export type SpacedRepetitionSetScalarFieldEnum = (typeof SpacedRepetitionSetScalarFieldEnum)[keyof typeof SpacedRepetitionSetScalarFieldEnum]
export const SpacedRepetitionSetDeckScalarFieldEnum = {
setId: 'setId',
deckId: 'deckId',
sortOrder: 'sortOrder',
addedAt: 'addedAt'
} as const
export type SpacedRepetitionSetDeckScalarFieldEnum = (typeof SpacedRepetitionSetDeckScalarFieldEnum)[keyof typeof SpacedRepetitionSetDeckScalarFieldEnum]
export const SpacedRepetitionCardStateScalarFieldEnum = {
id: 'id',
setId: 'setId',
flashcardId: 'flashcardId',
due: 'due',
stability: 'stability',
difficulty: 'difficulty',
elapsedDays: 'elapsedDays',
scheduledDays: 'scheduledDays',
learningSteps: 'learningSteps',
reps: 'reps',
lapses: 'lapses',
state: 'state',
firstReviewedAt: 'firstReviewedAt',
lastReview: 'lastReview',
createdAt: 'createdAt',
updatedAt: 'updatedAt'
} as const
export type SpacedRepetitionCardStateScalarFieldEnum = (typeof SpacedRepetitionCardStateScalarFieldEnum)[keyof typeof SpacedRepetitionCardStateScalarFieldEnum]
export const SortOrder = {
asc: 'asc',
desc: 'desc'
@ -1745,6 +2016,9 @@ export type GlobalOmitConfig = {
setting?: Prisma.SettingOmit
studyActivity?: Prisma.StudyActivityOmit
materialGroup?: Prisma.MaterialGroupOmit
spacedRepetitionSet?: Prisma.SpacedRepetitionSetOmit
spacedRepetitionSetDeck?: Prisma.SpacedRepetitionSetDeckOmit
spacedRepetitionCardState?: Prisma.SpacedRepetitionCardStateOmit
}
/* Types for Logging */