suparisma 1.2.2 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +51 -2
  2. package/dist/generators/coreGenerator.js +200 -15
  3. package/dist/generators/hookGenerator.js +20 -2
  4. package/dist/generators/typeGenerator.js +55 -5
  5. package/dist/index.js +6 -1
  6. package/package.json +1 -1
  7. package/tmp/generated-test/hooks/useSuparismaAsset.ts +94 -0
  8. package/tmp/generated-test/hooks/useSuparismaChapter.ts +96 -0
  9. package/tmp/generated-test/hooks/useSuparismaCourse.ts +96 -0
  10. package/tmp/generated-test/hooks/useSuparismaDeviceSession.ts +94 -0
  11. package/tmp/generated-test/hooks/useSuparismaEnrollment.ts +92 -0
  12. package/tmp/generated-test/hooks/useSuparismaLesson.ts +96 -0
  13. package/tmp/generated-test/hooks/useSuparismaLessonPurchase.ts +92 -0
  14. package/tmp/generated-test/hooks/useSuparismaLessonQuestion.ts +96 -0
  15. package/tmp/generated-test/hooks/useSuparismaPayoutMethod.ts +96 -0
  16. package/tmp/generated-test/hooks/useSuparismaPayoutRequest.ts +96 -0
  17. package/tmp/generated-test/hooks/useSuparismaQuestionOption.ts +92 -0
  18. package/tmp/generated-test/hooks/useSuparismaSavedPaymentMethod.ts +96 -0
  19. package/tmp/generated-test/hooks/useSuparismaTeacherPayoutInfo.ts +96 -0
  20. package/tmp/generated-test/hooks/useSuparismaThing.ts +96 -0
  21. package/tmp/generated-test/hooks/useSuparismaUser.ts +96 -0
  22. package/tmp/generated-test/hooks/useSuparismaVideoNote.ts +96 -0
  23. package/tmp/generated-test/hooks/useSuparismaWallet.ts +96 -0
  24. package/tmp/generated-test/hooks/useSuparismaWalletTransaction.ts +96 -0
  25. package/tmp/generated-test/hooks/useSuparismaWatchProgress.ts +96 -0
  26. package/tmp/generated-test/index.ts +140 -0
  27. package/tmp/generated-test/types/AssetTypes.ts +485 -0
  28. package/tmp/generated-test/types/ChapterTypes.ts +488 -0
  29. package/tmp/generated-test/types/CourseTypes.ts +519 -0
  30. package/tmp/generated-test/types/DeviceSessionTypes.ts +489 -0
  31. package/tmp/generated-test/types/EnrollmentTypes.ts +495 -0
  32. package/tmp/generated-test/types/LessonPurchaseTypes.ts +490 -0
  33. package/tmp/generated-test/types/LessonQuestionTypes.ts +496 -0
  34. package/tmp/generated-test/types/LessonTypes.ts +517 -0
  35. package/tmp/generated-test/types/PayoutMethodTypes.ts +517 -0
  36. package/tmp/generated-test/types/PayoutRequestTypes.ts +528 -0
  37. package/tmp/generated-test/types/QuestionOptionTypes.ts +479 -0
  38. package/tmp/generated-test/types/SavedPaymentMethodTypes.ts +497 -0
  39. package/tmp/generated-test/types/TeacherPayoutInfoTypes.ts +480 -0
  40. package/tmp/generated-test/types/ThingTypes.ts +482 -0
  41. package/tmp/generated-test/types/UserTypes.ts +487 -0
  42. package/tmp/generated-test/types/VideoNoteTypes.ts +489 -0
  43. package/tmp/generated-test/types/WalletTransactionTypes.ts +505 -0
  44. package/tmp/generated-test/types/WalletTypes.ts +480 -0
  45. package/tmp/generated-test/types/WatchProgressTypes.ts +493 -0
  46. package/tmp/generated-test/utils/core.ts +2306 -0
  47. package/tmp/generated-test/utils/supabase-client.ts +17 -0
  48. package/tmp/generated-test2/hooks/useSuparismaAsset.ts +94 -0
  49. package/tmp/generated-test2/hooks/useSuparismaChapter.ts +96 -0
  50. package/tmp/generated-test2/hooks/useSuparismaCourse.ts +96 -0
  51. package/tmp/generated-test2/hooks/useSuparismaDeviceSession.ts +94 -0
  52. package/tmp/generated-test2/hooks/useSuparismaEnrollment.ts +92 -0
  53. package/tmp/generated-test2/hooks/useSuparismaLesson.ts +96 -0
  54. package/tmp/generated-test2/hooks/useSuparismaLessonPurchase.ts +92 -0
  55. package/tmp/generated-test2/hooks/useSuparismaLessonQuestion.ts +96 -0
  56. package/tmp/generated-test2/hooks/useSuparismaPayoutMethod.ts +96 -0
  57. package/tmp/generated-test2/hooks/useSuparismaPayoutRequest.ts +96 -0
  58. package/tmp/generated-test2/hooks/useSuparismaQuestionOption.ts +92 -0
  59. package/tmp/generated-test2/hooks/useSuparismaSavedPaymentMethod.ts +96 -0
  60. package/tmp/generated-test2/hooks/useSuparismaTeacherPayoutInfo.ts +96 -0
  61. package/tmp/generated-test2/hooks/useSuparismaThing.ts +96 -0
  62. package/tmp/generated-test2/hooks/useSuparismaUser.ts +96 -0
  63. package/tmp/generated-test2/hooks/useSuparismaVideoNote.ts +96 -0
  64. package/tmp/generated-test2/hooks/useSuparismaWallet.ts +96 -0
  65. package/tmp/generated-test2/hooks/useSuparismaWalletTransaction.ts +96 -0
  66. package/tmp/generated-test2/hooks/useSuparismaWatchProgress.ts +96 -0
  67. package/tmp/generated-test2/index.ts +140 -0
  68. package/tmp/generated-test2/types/AssetTypes.ts +485 -0
  69. package/tmp/generated-test2/types/ChapterTypes.ts +488 -0
  70. package/tmp/generated-test2/types/CourseTypes.ts +522 -0
  71. package/tmp/generated-test2/types/DeviceSessionTypes.ts +489 -0
  72. package/tmp/generated-test2/types/EnrollmentTypes.ts +495 -0
  73. package/tmp/generated-test2/types/LessonPurchaseTypes.ts +490 -0
  74. package/tmp/generated-test2/types/LessonQuestionTypes.ts +496 -0
  75. package/tmp/generated-test2/types/LessonTypes.ts +517 -0
  76. package/tmp/generated-test2/types/PayoutMethodTypes.ts +517 -0
  77. package/tmp/generated-test2/types/PayoutRequestTypes.ts +528 -0
  78. package/tmp/generated-test2/types/QuestionOptionTypes.ts +479 -0
  79. package/tmp/generated-test2/types/SavedPaymentMethodTypes.ts +497 -0
  80. package/tmp/generated-test2/types/TeacherPayoutInfoTypes.ts +480 -0
  81. package/tmp/generated-test2/types/ThingTypes.ts +482 -0
  82. package/tmp/generated-test2/types/UserTypes.ts +490 -0
  83. package/tmp/generated-test2/types/VideoNoteTypes.ts +489 -0
  84. package/tmp/generated-test2/types/WalletTransactionTypes.ts +505 -0
  85. package/tmp/generated-test2/types/WalletTypes.ts +480 -0
  86. package/tmp/generated-test2/types/WatchProgressTypes.ts +493 -0
  87. package/tmp/generated-test2/utils/core.ts +2306 -0
  88. package/tmp/generated-test2/utils/supabase-client.ts +17 -0
  89. package/tmp/generated-test3/hooks/useSuparismaAsset.ts +94 -0
  90. package/tmp/generated-test3/hooks/useSuparismaChapter.ts +98 -0
  91. package/tmp/generated-test3/hooks/useSuparismaCourse.ts +98 -0
  92. package/tmp/generated-test3/hooks/useSuparismaDeviceSession.ts +94 -0
  93. package/tmp/generated-test3/hooks/useSuparismaEnrollment.ts +94 -0
  94. package/tmp/generated-test3/hooks/useSuparismaLesson.ts +98 -0
  95. package/tmp/generated-test3/hooks/useSuparismaLessonPurchase.ts +94 -0
  96. package/tmp/generated-test3/hooks/useSuparismaLessonQuestion.ts +98 -0
  97. package/tmp/generated-test3/hooks/useSuparismaPayoutMethod.ts +96 -0
  98. package/tmp/generated-test3/hooks/useSuparismaPayoutRequest.ts +96 -0
  99. package/tmp/generated-test3/hooks/useSuparismaQuestionOption.ts +94 -0
  100. package/tmp/generated-test3/hooks/useSuparismaSavedPaymentMethod.ts +96 -0
  101. package/tmp/generated-test3/hooks/useSuparismaTeacherPayoutInfo.ts +98 -0
  102. package/tmp/generated-test3/hooks/useSuparismaThing.ts +96 -0
  103. package/tmp/generated-test3/hooks/useSuparismaUser.ts +98 -0
  104. package/tmp/generated-test3/hooks/useSuparismaVideoNote.ts +98 -0
  105. package/tmp/generated-test3/hooks/useSuparismaWallet.ts +98 -0
  106. package/tmp/generated-test3/hooks/useSuparismaWalletTransaction.ts +98 -0
  107. package/tmp/generated-test3/hooks/useSuparismaWatchProgress.ts +98 -0
  108. package/tmp/generated-test3/index.ts +140 -0
  109. package/tmp/generated-test3/types/AssetTypes.ts +485 -0
  110. package/tmp/generated-test3/types/ChapterTypes.ts +488 -0
  111. package/tmp/generated-test3/types/CourseTypes.ts +522 -0
  112. package/tmp/generated-test3/types/DeviceSessionTypes.ts +489 -0
  113. package/tmp/generated-test3/types/EnrollmentTypes.ts +495 -0
  114. package/tmp/generated-test3/types/LessonPurchaseTypes.ts +490 -0
  115. package/tmp/generated-test3/types/LessonQuestionTypes.ts +496 -0
  116. package/tmp/generated-test3/types/LessonTypes.ts +517 -0
  117. package/tmp/generated-test3/types/PayoutMethodTypes.ts +517 -0
  118. package/tmp/generated-test3/types/PayoutRequestTypes.ts +528 -0
  119. package/tmp/generated-test3/types/QuestionOptionTypes.ts +479 -0
  120. package/tmp/generated-test3/types/SavedPaymentMethodTypes.ts +497 -0
  121. package/tmp/generated-test3/types/TeacherPayoutInfoTypes.ts +480 -0
  122. package/tmp/generated-test3/types/ThingTypes.ts +482 -0
  123. package/tmp/generated-test3/types/UserTypes.ts +490 -0
  124. package/tmp/generated-test3/types/VideoNoteTypes.ts +489 -0
  125. package/tmp/generated-test3/types/WalletTransactionTypes.ts +505 -0
  126. package/tmp/generated-test3/types/WalletTypes.ts +480 -0
  127. package/tmp/generated-test3/types/WatchProgressTypes.ts +493 -0
  128. package/tmp/generated-test3/utils/core.ts +2316 -0
  129. package/tmp/generated-test3/utils/supabase-client.ts +17 -0
  130. package/tmp/prisma-test-schema-2.prisma +339 -0
  131. package/tmp/prisma-test-schema.prisma +317 -0
@@ -0,0 +1,495 @@
1
+ // THIS FILE IS AUTO-GENERATED - DO NOT EDIT DIRECTLY
2
+ // Edit the generator script instead
3
+
4
+ import type { Enrollment } from '@prisma/client';
5
+ import type { ModelResult, SuparismaOptions, SearchQuery, SearchState, FilterOperators, IncludeValue } from '../utils/core';
6
+ import type { CourseWithRelations, CourseSelectInput } from './CourseTypes';
7
+
8
+ /**
9
+ * Extended Enrollment type that includes relation fields.
10
+ * This represents the complete shape of Enrollment records returned from the database.
11
+ */
12
+ export interface EnrollmentWithRelations {
13
+ id: string;
14
+ studentId: string;
15
+ courseId: string;
16
+ enrolledAt: Date;
17
+ completedAt?: Date;
18
+ paidAmount?: number;
19
+ paymentId?: string;
20
+ screenshotAttempts: number;
21
+ screenRecordingAttempts: number;
22
+ course?: CourseWithRelations;
23
+ }
24
+
25
+ /**
26
+ * Input type for creating a new Enrollment record.
27
+ * Fields with default values are optional and will be filled automatically if not provided.
28
+ *
29
+ * @example
30
+ * // Create a minimal enrollment
31
+ * enrollment.create({
32
+ * // Required fields only
33
+ * studentId: string,
34
+ * courseId: string,
35
+ * });
36
+ *
37
+ * @example
38
+ * // Create with optional fields
39
+ * enrollment.create({
40
+ * // All fields including optional ones
41
+ * id?: string,
42
+ * studentId: string,
43
+ * courseId: string,
44
+ * });
45
+ */
46
+ export interface EnrollmentCreateInput {
47
+ id?: string;
48
+ studentId: string;
49
+ courseId: string;
50
+ enrolledAt?: Date;
51
+ completedAt?: Date;
52
+ paidAmount?: number;
53
+ paymentId?: string;
54
+ screenshotAttempts?: number;
55
+ screenRecordingAttempts?: number;
56
+ }
57
+
58
+ /**
59
+ * Input type for updating an existing Enrollment record.
60
+ * All fields are optional since you only need to specify the fields you want to change.
61
+ *
62
+ * @example
63
+ * // Update a enrollment's fields
64
+ * enrollment.update({
65
+ * where: { id: "123" },
66
+ * data: {
67
+ * id?: string,
68
+ * studentId: string,
69
+ * }
70
+ * });
71
+ */
72
+ export type EnrollmentUpdateInput = Partial<EnrollmentCreateInput>;
73
+
74
+ /**
75
+ * Filter type for querying Enrollment records.
76
+ * You can filter by any field in the model using equality or advanced filter operators.
77
+ * Supports OR and AND logical operations for complex queries.
78
+ *
79
+ * @example
80
+ * // Basic filtering
81
+ * enrollment.findMany({
82
+ * where: {
83
+ * id: "value",
84
+ * studentId: "value"
85
+ * }
86
+ * });
87
+ *
88
+ * @example
89
+ * // Advanced filtering
90
+ * enrollment.findMany({
91
+ * where: {
92
+ * // Use advanced operators
93
+ * id: { contains: "partial" }
94
+ * }
95
+ * });
96
+ *
97
+ * @example
98
+ * // OR conditions - match ANY condition
99
+ * enrollment.findMany({
100
+ * where: {
101
+ * OR: [
102
+ * { id: "value1" },
103
+ * { studentId: { contains: "value2" } }
104
+ * ]
105
+ * }
106
+ * });
107
+ *
108
+ * @example
109
+ * // AND conditions - match ALL conditions
110
+ * enrollment.findMany({
111
+ * where: {
112
+ * AND: [
113
+ * { id: "value1" },
114
+ * { studentId: { gt: 100 } }
115
+ * ]
116
+ * }
117
+ * });
118
+ *
119
+ * @example
120
+ * // Complex nested logic
121
+ * enrollment.findMany({
122
+ * where: {
123
+ * active: true, // Regular condition (implicit AND)
124
+ * OR: [
125
+ * { role: "admin" },
126
+ * { role: "moderator" }
127
+ * ]
128
+ * }
129
+ * });
130
+ *
131
+ * @example
132
+ * // Array filtering (for array fields)
133
+ * enrollment.findMany({
134
+ * where: {
135
+ * // Array contains specific items
136
+
137
+ * }
138
+ * });
139
+ */
140
+ export type EnrollmentWhereInput = {
141
+ id?: string | FilterOperators<string>;
142
+ studentId?: string | FilterOperators<string>;
143
+ courseId?: string | FilterOperators<string>;
144
+ enrolledAt?: Date | FilterOperators<Date>;
145
+ completedAt?: Date | FilterOperators<Date>;
146
+ paidAmount?: number | FilterOperators<number>;
147
+ paymentId?: string | FilterOperators<string>;
148
+ screenshotAttempts?: number | FilterOperators<number>;
149
+ screenRecordingAttempts?: number | FilterOperators<number>;
150
+ } & {
151
+ /** Match ANY of the provided conditions */
152
+ OR?: EnrollmentWhereInput[];
153
+ /** Match ALL of the provided conditions */
154
+ AND?: EnrollmentWhereInput[];
155
+ };
156
+
157
+ /**
158
+ * Unique identifier for finding a specific Enrollment record.
159
+ * Usually uses the ID field but can be any field marked as @unique in the schema.
160
+ *
161
+ * @example
162
+ * // Find by ID
163
+ * enrollment.findUnique({ id: "123" });
164
+ *
165
+ * @example
166
+ * // Delete by ID
167
+ * enrollment.delete({ id: "123" });
168
+ */
169
+ export type EnrollmentWhereUniqueInput = {
170
+ id: string;
171
+ };
172
+
173
+ /**
174
+ * Sort options for Enrollment queries.
175
+ * Specify the field to sort by and the direction ('asc' or 'desc').
176
+ *
177
+ * @example
178
+ * // Sort by creation date, newest first
179
+ * enrollment.findMany({
180
+ * orderBy: { created_at: 'desc' }
181
+ * });
182
+ *
183
+ * @example
184
+ * // Sort alphabetically
185
+ * enrollment.findMany({
186
+ * orderBy: { name: 'asc' }
187
+ * });
188
+ */
189
+ export type EnrollmentOrderByInput = {
190
+ [key in keyof EnrollmentSelectInput]?: 'asc' | 'desc';
191
+ };
192
+
193
+ /**
194
+ * Select specific scalar fields to return from Enrollment queries.
195
+ * Relation fields are intentionally excluded; use `include` for relations.
196
+ */
197
+ export type EnrollmentSelectInput = {
198
+ id?: boolean;
199
+ studentId?: boolean;
200
+ courseId?: boolean;
201
+ enrolledAt?: boolean;
202
+ completedAt?: boolean;
203
+ paidAmount?: boolean;
204
+ paymentId?: boolean;
205
+ screenshotAttempts?: boolean;
206
+ screenRecordingAttempts?: boolean;
207
+ };
208
+
209
+ /**
210
+ * Include related records when querying Enrollment.
211
+ * Only real Prisma relation fields are allowed here.
212
+ */
213
+ export type EnrollmentIncludeInput = {
214
+ course?: IncludeValue | { select?: CourseSelectInput };
215
+ };
216
+
217
+ /**
218
+ * Result type for operations that return a single Enrollment record.
219
+ */
220
+ export type EnrollmentSingleResult = ModelResult<EnrollmentWithRelations>;
221
+
222
+ /**
223
+ * Result type for operations that return multiple Enrollment records.
224
+ */
225
+ export type EnrollmentManyResult = ModelResult<EnrollmentWithRelations[]>;
226
+
227
+ /**
228
+ * Configuration options for the Enrollment hook.
229
+ * Includes where filters, ordering, pagination, and field selection.
230
+ */
231
+ export type UseEnrollmentOptions = SuparismaOptions<
232
+ EnrollmentWhereInput,
233
+ EnrollmentOrderByInput,
234
+ EnrollmentSelectInput,
235
+ EnrollmentIncludeInput
236
+ >;
237
+
238
+ /**
239
+ * The complete API for interacting with Enrollment records.
240
+ * This interface defines all available operations and state properties.
241
+ */
242
+ export interface EnrollmentHookApi {
243
+ /**
244
+ * Current array of Enrollment records.
245
+ * This is automatically updated when:
246
+ * - The initial data is loaded
247
+ * - Mutations are performed (create, update, delete)
248
+ * - Real-time updates are received from other clients
249
+ * - The refresh method is called
250
+ *
251
+ * @example
252
+ * // Render a list of enrollment records
253
+ * const { data } = enrollment;
254
+ * return (
255
+ * <ul>
256
+ * {data.map(item => (
257
+ * <li key={item.id}>{item.name}</li>
258
+ * ))}
259
+ * </ul>
260
+ * );
261
+ */
262
+ data: EnrollmentWithRelations[];
263
+
264
+ /**
265
+ * Error object if the last operation failed, null otherwise.
266
+ *
267
+ * @example
268
+ * // Handle potential errors
269
+ * const { error } = enrollment;
270
+ * if (error) {
271
+ * return <div>Error: {error.message}</div>;
272
+ * }
273
+ */
274
+ error: Error | null;
275
+
276
+ /**
277
+ * Boolean indicating if an operation is in progress.
278
+ *
279
+ * @example
280
+ * // Show loading state
281
+ * const { loading } = enrollment;
282
+ * if (loading) {
283
+ * return <div>Loading...</div>;
284
+ * }
285
+ */
286
+ loading: boolean;
287
+
288
+ /**
289
+ * The current count of records matching the filter criteria.
290
+ * This automatically updates with the data, including realtime updates.
291
+ * It always reflects the current length of the data array, respecting any filters.
292
+ *
293
+ * @example
294
+ * // Display the count in the UI
295
+ * const { count } = enrollment;
296
+ * return <div>Total records: {count}</div>;
297
+ */
298
+ count: number;
299
+
300
+
301
+
302
+ /**
303
+ * Find a single Enrollment record by its unique identifier.
304
+ *
305
+ * @param where - The unique identifier to find the record by
306
+ * @returns A promise with the found record or error
307
+ *
308
+ * @example
309
+ * // Find enrollment by ID
310
+ * const result = await enrollment.findUnique({ id: "123" });
311
+ * if (result.data) {
312
+ * console.log("Found enrollment:", result.data);
313
+ * }
314
+ */
315
+ findUnique: (where: EnrollmentWhereUniqueInput) => EnrollmentSingleResult;
316
+
317
+ /**
318
+ * Find multiple Enrollment records matching the filter criteria.
319
+ * Supports filtering, sorting, and pagination.
320
+ *
321
+ * @param params - Optional query parameters
322
+ * @returns A promise with the matching records or error
323
+ *
324
+ * @example
325
+ * // Get all enrollment records
326
+ * const result = await enrollment.findMany();
327
+ *
328
+ * @example
329
+ * // Filter and sort records
330
+ * const result = await enrollment.findMany({
331
+ * where: { active: true },
332
+ * orderBy: { created_at: 'desc' },
333
+ * take: 10,
334
+ * skip: 0
335
+ * });
336
+ */
337
+ findMany: (params?: {
338
+ where?: EnrollmentWhereInput;
339
+ orderBy?: EnrollmentOrderByInput;
340
+ take?: number;
341
+ skip?: number;
342
+ }) => EnrollmentManyResult;
343
+
344
+ /**
345
+ * Find the first Enrollment record matching the filter criteria.
346
+ *
347
+ * @param params - Optional query parameters
348
+ * @returns A promise with the first matching record or error
349
+ *
350
+ * @example
351
+ * // Find the first active enrollment
352
+ * const result = await enrollment.findFirst({
353
+ * where: { active: true }
354
+ * });
355
+ *
356
+ * @example
357
+ * // Find the oldest enrollment
358
+ * const result = await enrollment.findFirst({
359
+ * orderBy: { created_at: 'asc' }
360
+ * });
361
+ */
362
+ findFirst: (params?: {
363
+ where?: EnrollmentWhereInput;
364
+ orderBy?: EnrollmentOrderByInput;
365
+ }) => EnrollmentSingleResult;
366
+
367
+ /**
368
+ * Create a new Enrollment record.
369
+ * Fields with default values are optional and will use their defaults if not provided.
370
+ *
371
+ * @param data - The data for the new record
372
+ * @returns A promise with the created record or error
373
+ *
374
+ * @example
375
+ * // Create a new enrollment
376
+ * const result = await enrollment.create({
377
+ * studentId: "value",
378
+ * courseId: "value"
379
+ * });
380
+ *
381
+ * @example
382
+ * // Create with custom ID (overriding default)
383
+ * const result = await enrollment.create({
384
+ * id: "custom-id",
385
+ * studentId: "value"
386
+ * });
387
+ */
388
+ create: (data: EnrollmentCreateInput) => EnrollmentSingleResult;
389
+
390
+ /**
391
+ * Update an existing Enrollment record.
392
+ *
393
+ * @param params - Object with the record identifier and fields to update
394
+ * @returns A promise with the updated record or error
395
+ *
396
+ * @example
397
+ * // Update a enrollment's fields
398
+ * const result = await enrollment.update({
399
+ * where: { id: "123" },
400
+ * data: {
401
+ * id?: "updated value",
402
+ * studentId: "updated value"
403
+ * }
404
+ * });
405
+ */
406
+ update: (params: {
407
+ where: EnrollmentWhereUniqueInput;
408
+ data: EnrollmentUpdateInput;
409
+ }) => EnrollmentSingleResult;
410
+
411
+ /**
412
+ * Delete a Enrollment record by its unique identifier.
413
+ *
414
+ * @param where - The unique identifier of the record to delete
415
+ * @returns A promise with the deleted record or error
416
+ *
417
+ * @example
418
+ * // Delete a enrollment by ID
419
+ * const result = await enrollment.delete({ id: "123" });
420
+ * if (result.data) {
421
+ * console.log("Deleted enrollment:", result.data);
422
+ * }
423
+ */
424
+ delete: (where: EnrollmentWhereUniqueInput) => EnrollmentSingleResult;
425
+
426
+ /**
427
+ * Delete multiple Enrollment records matching the filter criteria.
428
+ *
429
+ * @param params - Optional filter parameters
430
+ * @returns A promise with the count of deleted records or error
431
+ *
432
+ * @example
433
+ * // Delete all inactive enrollment records
434
+ * const result = await enrollment.deleteMany({
435
+ * where: { active: false }
436
+ * });
437
+ * console.log(`Deleted ${result.count} records`);
438
+ *
439
+ * @example
440
+ * // Delete all enrollment records (use with caution!)
441
+ * const result = await enrollment.deleteMany();
442
+ */
443
+ deleteMany: (params?: {
444
+ where?: EnrollmentWhereInput;
445
+ }) => Promise<{ count: number; error: Error | null }>;
446
+
447
+ /**
448
+ * Create a record if it doesn't exist, or update it if it does.
449
+ *
450
+ * @param params - Object with the identifier, update data, and create data
451
+ * @returns A promise with the created or updated record or error
452
+ *
453
+ * @example
454
+ * // Upsert a enrollment by ID
455
+ * const result = await enrollment.upsert({
456
+ * where: { id: "123" },
457
+ * update: { name: "Updated Name" },
458
+ * create: {
459
+ * id: "123",
460
+ * name: "New Name",
461
+ * studentId: "value"
462
+ * }
463
+ * });
464
+ */
465
+ upsert: (params: {
466
+ where: EnrollmentWhereUniqueInput;
467
+ update: EnrollmentUpdateInput;
468
+ create: EnrollmentCreateInput;
469
+ }) => EnrollmentSingleResult;
470
+
471
+ /**
472
+ * Manually refresh the data with current filter settings.
473
+ * Useful after external operations or when realtime is disabled.
474
+ *
475
+ * @param params - Optional override parameters for this specific refresh
476
+ * @returns A promise with the refreshed data or error
477
+ *
478
+ * @example
479
+ * // Refresh with current filter settings
480
+ * await enrollment.refresh();
481
+ *
482
+ * @example
483
+ * // Refresh with different filters for this call only
484
+ * await enrollment.refresh({
485
+ * where: { active: true },
486
+ * orderBy: { name: 'asc' }
487
+ * });
488
+ */
489
+ refresh: (params?: {
490
+ where?: EnrollmentWhereInput;
491
+ orderBy?: EnrollmentOrderByInput;
492
+ take?: number;
493
+ skip?: number;
494
+ }) => EnrollmentManyResult;
495
+ }