@vestcards/server-types 0.1.0

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 (89) hide show
  1. package/dist/apps/server/src/app.d.ts +758 -0
  2. package/dist/apps/server/src/config/cors.d.ts +2 -0
  3. package/dist/apps/server/src/config/env.d.ts +12 -0
  4. package/dist/apps/server/src/config/redis.d.ts +2 -0
  5. package/dist/apps/server/src/db/index.d.ts +6 -0
  6. package/dist/apps/server/src/db/schema/auth.d.ts +841 -0
  7. package/dist/apps/server/src/db/schema/data.d.ts +99 -0
  8. package/dist/apps/server/src/db/schema/deck.d.ts +1208 -0
  9. package/dist/apps/server/src/db/schema/entity.d.ts +48 -0
  10. package/dist/apps/server/src/db/schema/index.d.ts +6 -0
  11. package/dist/apps/server/src/db/schema/marketing.d.ts +112 -0
  12. package/dist/apps/server/src/db/schema/payment.d.ts +548 -0
  13. package/dist/apps/server/src/db/types.d.ts +2 -0
  14. package/dist/apps/server/src/db/utils.d.ts +8 -0
  15. package/dist/apps/server/src/index.d.ts +2 -0
  16. package/dist/apps/server/src/middleware/errorHandler.d.ts +16 -0
  17. package/dist/apps/server/src/middleware/logger.d.ts +29 -0
  18. package/dist/apps/server/src/modules/auth/auth.test.d.ts +1 -0
  19. package/dist/apps/server/src/modules/auth/index.d.ts +358 -0
  20. package/dist/apps/server/src/modules/auth/lib.d.ts +324 -0
  21. package/dist/apps/server/src/modules/auth/permissions/entitlements.d.ts +2 -0
  22. package/dist/apps/server/src/modules/auth/permissions/permissions.d.ts +60 -0
  23. package/dist/apps/server/src/modules/auth/utils.d.ts +8 -0
  24. package/dist/apps/server/src/modules/deck/deck.test.d.ts +1 -0
  25. package/dist/apps/server/src/modules/deck/index.d.ts +473 -0
  26. package/dist/apps/server/src/modules/deck/model.d.ts +31 -0
  27. package/dist/apps/server/src/modules/deck/service.d.ts +7 -0
  28. package/dist/apps/server/src/modules/lead/index.d.ts +95 -0
  29. package/dist/apps/server/src/modules/lead/lead.test.d.ts +1 -0
  30. package/dist/apps/server/src/modules/lead/model.d.ts +9 -0
  31. package/dist/apps/server/src/modules/lead/service.d.ts +19 -0
  32. package/dist/apps/server/src/modules/study/index.d.ts +513 -0
  33. package/dist/apps/server/src/modules/study/lib/constants.d.ts +5 -0
  34. package/dist/apps/server/src/modules/study/lib/fsrs.d.ts +12 -0
  35. package/dist/apps/server/src/modules/study/model.d.ts +14 -0
  36. package/dist/apps/server/src/modules/study/service.d.ts +13 -0
  37. package/dist/apps/server/src/modules/study/study.test.d.ts +1 -0
  38. package/dist/apps/server/src/modules/study/utils.d.ts +14 -0
  39. package/dist/apps/server/src/modules/topic/index.d.ts +429 -0
  40. package/dist/apps/server/src/modules/topic/model.d.ts +16 -0
  41. package/dist/apps/server/src/modules/topic/service.d.ts +6 -0
  42. package/dist/apps/server/src/modules/topic/topic.test.d.ts +1 -0
  43. package/dist/apps/server/src/modules/user/index.d.ts +380 -0
  44. package/dist/apps/server/src/modules/user/model.d.ts +16 -0
  45. package/dist/apps/server/src/modules/user/service.d.ts +3 -0
  46. package/dist/apps/server/src/server.d.ts +1 -0
  47. package/dist/apps/server/src/tests/api.test.d.ts +1 -0
  48. package/dist/apps/server/src/tests/helpers/auth-helpers.d.ts +55 -0
  49. package/dist/apps/server/src/tests/helpers/fixtures.d.ts +144 -0
  50. package/dist/apps/server/src/tests/helpers/http-helpers.d.ts +33 -0
  51. package/dist/apps/server/src/tests/helpers/index.d.ts +3 -0
  52. package/dist/apps/server/src/types/study.d.ts +28 -0
  53. package/dist/apps/server/src/types/topic.d.ts +1 -0
  54. package/dist/apps/server/src/utils/alias.d.ts +631 -0
  55. package/dist/apps/server/src/utils/api.d.ts +31 -0
  56. package/dist/apps/server/src/utils/errors.d.ts +26 -0
  57. package/dist/apps/server/src/utils/select.d.ts +373 -0
  58. package/dist/apps/server/src/utils/uuid.d.ts +1 -0
  59. package/dist/index.d.ts +2 -0
  60. package/dist/packages/email-core/src/emailProvider.d.ts +24 -0
  61. package/dist/packages/email-core/src/emailTemplateBuilder.d.ts +4 -0
  62. package/dist/packages/email-core/src/templates/accountDeletion.d.ts +7 -0
  63. package/dist/packages/email-core/src/templates/adminPurchaseAlert.d.ts +10 -0
  64. package/dist/packages/email-core/src/templates/cardDemand.d.ts +8 -0
  65. package/dist/packages/email-core/src/templates/cardDemandAction.d.ts +9 -0
  66. package/dist/packages/email-core/src/templates/emailVerification.d.ts +7 -0
  67. package/dist/packages/email-core/src/templates/footer.d.ts +1 -0
  68. package/dist/packages/email-core/src/templates/forgotPassword.d.ts +7 -0
  69. package/dist/packages/email-core/src/templates/index.d.ts +28 -0
  70. package/dist/packages/email-core/src/templates/purchaseConfirmation.d.ts +9 -0
  71. package/dist/packages/email-core/src/templates/purchasePrePayment.d.ts +9 -0
  72. package/dist/packages/email-core/src/templates/purchaseRefund.d.ts +7 -0
  73. package/dist/packages/shared/src/date/constants.d.ts +2 -0
  74. package/dist/packages/shared/src/date/fns.d.ts +8 -0
  75. package/dist/packages/shared/src/date/format.d.ts +9 -0
  76. package/dist/packages/shared/src/date/helpers.d.ts +2 -0
  77. package/dist/packages/shared/src/date/index.d.ts +14 -0
  78. package/dist/packages/shared/src/date/relative.d.ts +19 -0
  79. package/dist/packages/shared/src/date/types.d.ts +1 -0
  80. package/dist/packages/shared/src/index.d.ts +5 -0
  81. package/dist/packages/shared/src/types/deck.d.ts +48 -0
  82. package/dist/packages/shared/src/types/study.d.ts +15 -0
  83. package/dist/packages/shared/src/types/subject.d.ts +8 -0
  84. package/dist/packages/shared/src/types/topic.d.ts +7 -0
  85. package/dist/packages/shared/src/types/user.d.ts +22 -0
  86. package/dist/packages/utils/src/env/index.d.ts +1 -0
  87. package/dist/packages/utils/src/logger/index.d.ts +2 -0
  88. package/dist/packages/utils/src/logger/logger.d.ts +2 -0
  89. package/package.json +25 -0
@@ -0,0 +1,28 @@
1
+ import type { Subject } from '@vestcards/shared';
2
+ import type { CardReview } from 'src/db/schema/deck';
3
+ export type { CardState, GradeCardInput, Rating, SessionStats, StudyType } from '@vestcards/shared';
4
+ export interface ICard {
5
+ id: string;
6
+ question: string;
7
+ answer: string | null;
8
+ frontImage?: {
9
+ id: string;
10
+ url: string;
11
+ };
12
+ backImage?: {
13
+ id: string;
14
+ url: string;
15
+ };
16
+ }
17
+ export type SessionCard = {
18
+ card: ICard;
19
+ card_review: CardReview;
20
+ subject: Subject;
21
+ topicName: string;
22
+ userDeckStudyId: string;
23
+ };
24
+ export interface SessionData {
25
+ reviewCards: SessionCard[];
26
+ newCards: SessionCard[];
27
+ stats: import('@vestcards/shared').SessionStats;
28
+ }
@@ -0,0 +1 @@
1
+ export type { Topic } from '@vestcards/shared';
@@ -0,0 +1,631 @@
1
+ import { type AnyColumn, type ChangeColumnTableName } from 'drizzle-orm';
2
+ import type { PgTable } from 'drizzle-orm/pg-core';
3
+ type ColumnAlias<T extends AnyColumn> = ChangeColumnTableName<T, string, 'pg'>;
4
+ type ColumnAliases<T extends PgTable> = {
5
+ [K in keyof T['_']['columns']]: ColumnAlias<T['_']['columns'][K]>;
6
+ };
7
+ declare const decksAliased: ColumnAliases<import("drizzle-orm/pg-core").PgTableWithColumns<{
8
+ name: "deck";
9
+ schema: undefined;
10
+ columns: {
11
+ id: import("drizzle-orm/pg-core").PgColumn<{
12
+ name: "id";
13
+ tableName: "deck";
14
+ dataType: "string";
15
+ columnType: "PgText";
16
+ data: string;
17
+ driverParam: string;
18
+ notNull: true;
19
+ hasDefault: true;
20
+ isPrimaryKey: true;
21
+ isAutoincrement: false;
22
+ hasRuntimeDefault: true;
23
+ enumValues: [string, ...string[]];
24
+ baseColumn: never;
25
+ identity: undefined;
26
+ generated: undefined;
27
+ }, {}, {}>;
28
+ title: import("drizzle-orm/pg-core").PgColumn<{
29
+ name: "title";
30
+ tableName: "deck";
31
+ dataType: "string";
32
+ columnType: "PgText";
33
+ data: string;
34
+ driverParam: string;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: [string, ...string[]];
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {}>;
45
+ description: import("drizzle-orm/pg-core").PgColumn<{
46
+ name: "description";
47
+ tableName: "deck";
48
+ dataType: "string";
49
+ columnType: "PgText";
50
+ data: string;
51
+ driverParam: string;
52
+ notNull: true;
53
+ hasDefault: true;
54
+ isPrimaryKey: false;
55
+ isAutoincrement: false;
56
+ hasRuntimeDefault: false;
57
+ enumValues: [string, ...string[]];
58
+ baseColumn: never;
59
+ identity: undefined;
60
+ generated: undefined;
61
+ }, {}, {}>;
62
+ topicId: import("drizzle-orm/pg-core").PgColumn<{
63
+ name: "topic_id";
64
+ tableName: "deck";
65
+ dataType: "string";
66
+ columnType: "PgText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: true;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {}>;
79
+ keywords: import("drizzle-orm/pg-core").PgColumn<{
80
+ name: "keywords";
81
+ tableName: "deck";
82
+ dataType: "array";
83
+ columnType: "PgArray";
84
+ data: string[];
85
+ driverParam: string | string[];
86
+ notNull: true;
87
+ hasDefault: true;
88
+ isPrimaryKey: false;
89
+ isAutoincrement: false;
90
+ hasRuntimeDefault: false;
91
+ enumValues: [string, ...string[]];
92
+ baseColumn: import("drizzle-orm").Column<{
93
+ name: "keywords";
94
+ tableName: "deck";
95
+ dataType: "string";
96
+ columnType: "PgText";
97
+ data: string;
98
+ driverParam: string;
99
+ notNull: false;
100
+ hasDefault: false;
101
+ isPrimaryKey: false;
102
+ isAutoincrement: false;
103
+ hasRuntimeDefault: false;
104
+ enumValues: [string, ...string[]];
105
+ baseColumn: never;
106
+ identity: undefined;
107
+ generated: undefined;
108
+ }, {}, {}>;
109
+ identity: undefined;
110
+ generated: undefined;
111
+ }, {}, {
112
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
113
+ name: "keywords";
114
+ dataType: "string";
115
+ columnType: "PgText";
116
+ data: string;
117
+ enumValues: [string, ...string[]];
118
+ driverParam: string;
119
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
120
+ size: undefined;
121
+ }>;
122
+ free: import("drizzle-orm/pg-core").PgColumn<{
123
+ name: "free";
124
+ tableName: "deck";
125
+ dataType: "boolean";
126
+ columnType: "PgBoolean";
127
+ data: boolean;
128
+ driverParam: boolean;
129
+ notNull: true;
130
+ hasDefault: true;
131
+ isPrimaryKey: false;
132
+ isAutoincrement: false;
133
+ hasRuntimeDefault: false;
134
+ enumValues: undefined;
135
+ baseColumn: never;
136
+ identity: undefined;
137
+ generated: undefined;
138
+ }, {}, {}>;
139
+ status: import("drizzle-orm/pg-core").PgColumn<{
140
+ name: "status";
141
+ tableName: "deck";
142
+ dataType: "string";
143
+ columnType: "PgText";
144
+ data: import("@vestcards/shared").DeckStatus;
145
+ driverParam: string;
146
+ notNull: true;
147
+ hasDefault: true;
148
+ isPrimaryKey: false;
149
+ isAutoincrement: false;
150
+ hasRuntimeDefault: false;
151
+ enumValues: [import("@vestcards/shared").DeckStatus.Draft, import("@vestcards/shared").DeckStatus.Review, import("@vestcards/shared").DeckStatus.Published, import("@vestcards/shared").DeckStatus.Archived];
152
+ baseColumn: never;
153
+ identity: undefined;
154
+ generated: undefined;
155
+ }, {}, {}>;
156
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
157
+ name: "created_at";
158
+ tableName: "deck";
159
+ dataType: "date";
160
+ columnType: "PgTimestamp";
161
+ data: Date;
162
+ driverParam: string;
163
+ notNull: true;
164
+ hasDefault: true;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: undefined;
169
+ baseColumn: never;
170
+ identity: undefined;
171
+ generated: undefined;
172
+ }, {}, {}>;
173
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
174
+ name: "updated_at";
175
+ tableName: "deck";
176
+ dataType: "date";
177
+ columnType: "PgTimestamp";
178
+ data: Date;
179
+ driverParam: string;
180
+ notNull: true;
181
+ hasDefault: true;
182
+ isPrimaryKey: false;
183
+ isAutoincrement: false;
184
+ hasRuntimeDefault: false;
185
+ enumValues: undefined;
186
+ baseColumn: never;
187
+ identity: undefined;
188
+ generated: undefined;
189
+ }, {}, {}>;
190
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
191
+ name: "deleted_at";
192
+ tableName: "deck";
193
+ dataType: "date";
194
+ columnType: "PgTimestamp";
195
+ data: Date;
196
+ driverParam: string;
197
+ notNull: false;
198
+ hasDefault: false;
199
+ isPrimaryKey: false;
200
+ isAutoincrement: false;
201
+ hasRuntimeDefault: false;
202
+ enumValues: undefined;
203
+ baseColumn: never;
204
+ identity: undefined;
205
+ generated: undefined;
206
+ }, {}, {}>;
207
+ ownerId: import("drizzle-orm/pg-core").PgColumn<{
208
+ name: "owner_id";
209
+ tableName: "deck";
210
+ dataType: "string";
211
+ columnType: "PgText";
212
+ data: string;
213
+ driverParam: string;
214
+ notNull: true;
215
+ hasDefault: false;
216
+ isPrimaryKey: false;
217
+ isAutoincrement: false;
218
+ hasRuntimeDefault: false;
219
+ enumValues: [string, ...string[]];
220
+ baseColumn: never;
221
+ identity: undefined;
222
+ generated: undefined;
223
+ }, {}, {}>;
224
+ lastEditedBy: import("drizzle-orm/pg-core").PgColumn<{
225
+ name: "last_edited_by";
226
+ tableName: "deck";
227
+ dataType: "string";
228
+ columnType: "PgText";
229
+ data: string;
230
+ driverParam: string;
231
+ notNull: false;
232
+ hasDefault: false;
233
+ isPrimaryKey: false;
234
+ isAutoincrement: false;
235
+ hasRuntimeDefault: false;
236
+ enumValues: [string, ...string[]];
237
+ baseColumn: never;
238
+ identity: undefined;
239
+ generated: undefined;
240
+ }, {}, {}>;
241
+ };
242
+ dialect: "pg";
243
+ }>>;
244
+ declare const cardsAliased: ColumnAliases<import("drizzle-orm/pg-core").PgTableWithColumns<{
245
+ name: "card";
246
+ schema: undefined;
247
+ columns: {
248
+ id: import("drizzle-orm/pg-core").PgColumn<{
249
+ name: "id";
250
+ tableName: "card";
251
+ dataType: "string";
252
+ columnType: "PgText";
253
+ data: string;
254
+ driverParam: string;
255
+ notNull: true;
256
+ hasDefault: true;
257
+ isPrimaryKey: true;
258
+ isAutoincrement: false;
259
+ hasRuntimeDefault: true;
260
+ enumValues: [string, ...string[]];
261
+ baseColumn: never;
262
+ identity: undefined;
263
+ generated: undefined;
264
+ }, {}, {}>;
265
+ deckId: import("drizzle-orm/pg-core").PgColumn<{
266
+ name: "deck_id";
267
+ tableName: "card";
268
+ dataType: "string";
269
+ columnType: "PgText";
270
+ data: string;
271
+ driverParam: string;
272
+ notNull: true;
273
+ hasDefault: false;
274
+ isPrimaryKey: false;
275
+ isAutoincrement: false;
276
+ hasRuntimeDefault: false;
277
+ enumValues: [string, ...string[]];
278
+ baseColumn: never;
279
+ identity: undefined;
280
+ generated: undefined;
281
+ }, {}, {}>;
282
+ order: import("drizzle-orm/pg-core").PgColumn<{
283
+ name: "order";
284
+ tableName: "card";
285
+ dataType: "number";
286
+ columnType: "PgInteger";
287
+ data: number;
288
+ driverParam: string | number;
289
+ notNull: true;
290
+ hasDefault: true;
291
+ isPrimaryKey: false;
292
+ isAutoincrement: false;
293
+ hasRuntimeDefault: false;
294
+ enumValues: undefined;
295
+ baseColumn: never;
296
+ identity: undefined;
297
+ generated: undefined;
298
+ }, {}, {}>;
299
+ question: import("drizzle-orm/pg-core").PgColumn<{
300
+ name: "question";
301
+ tableName: "card";
302
+ dataType: "string";
303
+ columnType: "PgText";
304
+ data: string;
305
+ driverParam: string;
306
+ notNull: true;
307
+ hasDefault: false;
308
+ isPrimaryKey: false;
309
+ isAutoincrement: false;
310
+ hasRuntimeDefault: false;
311
+ enumValues: [string, ...string[]];
312
+ baseColumn: never;
313
+ identity: undefined;
314
+ generated: undefined;
315
+ }, {}, {}>;
316
+ answer: import("drizzle-orm/pg-core").PgColumn<{
317
+ name: "answer";
318
+ tableName: "card";
319
+ dataType: "string";
320
+ columnType: "PgText";
321
+ data: string;
322
+ driverParam: string;
323
+ notNull: false;
324
+ hasDefault: false;
325
+ isPrimaryKey: false;
326
+ isAutoincrement: false;
327
+ hasRuntimeDefault: false;
328
+ enumValues: [string, ...string[]];
329
+ baseColumn: never;
330
+ identity: undefined;
331
+ generated: undefined;
332
+ }, {}, {}>;
333
+ extend: import("drizzle-orm/pg-core").PgColumn<{
334
+ name: "extend";
335
+ tableName: "card";
336
+ dataType: "json";
337
+ columnType: "PgJson";
338
+ data: unknown;
339
+ driverParam: unknown;
340
+ notNull: true;
341
+ hasDefault: true;
342
+ isPrimaryKey: false;
343
+ isAutoincrement: false;
344
+ hasRuntimeDefault: false;
345
+ enumValues: undefined;
346
+ baseColumn: never;
347
+ identity: undefined;
348
+ generated: undefined;
349
+ }, {}, {}>;
350
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
351
+ name: "updated_at";
352
+ tableName: "card";
353
+ dataType: "date";
354
+ columnType: "PgTimestamp";
355
+ data: Date;
356
+ driverParam: string;
357
+ notNull: true;
358
+ hasDefault: true;
359
+ isPrimaryKey: false;
360
+ isAutoincrement: false;
361
+ hasRuntimeDefault: false;
362
+ enumValues: undefined;
363
+ baseColumn: never;
364
+ identity: undefined;
365
+ generated: undefined;
366
+ }, {}, {}>;
367
+ };
368
+ dialect: "pg";
369
+ }>>;
370
+ declare const topicsAliased: ColumnAliases<import("drizzle-orm/pg-core").PgTableWithColumns<{
371
+ name: "topic";
372
+ schema: undefined;
373
+ columns: {
374
+ id: import("drizzle-orm/pg-core").PgColumn<{
375
+ name: "id";
376
+ tableName: "topic";
377
+ dataType: "string";
378
+ columnType: "PgText";
379
+ data: string;
380
+ driverParam: string;
381
+ notNull: true;
382
+ hasDefault: true;
383
+ isPrimaryKey: true;
384
+ isAutoincrement: false;
385
+ hasRuntimeDefault: true;
386
+ enumValues: [string, ...string[]];
387
+ baseColumn: never;
388
+ identity: undefined;
389
+ generated: undefined;
390
+ }, {}, {}>;
391
+ name: import("drizzle-orm/pg-core").PgColumn<{
392
+ name: "name";
393
+ tableName: "topic";
394
+ dataType: "string";
395
+ columnType: "PgText";
396
+ data: string;
397
+ driverParam: string;
398
+ notNull: true;
399
+ hasDefault: false;
400
+ isPrimaryKey: false;
401
+ isAutoincrement: false;
402
+ hasRuntimeDefault: false;
403
+ enumValues: [string, ...string[]];
404
+ baseColumn: never;
405
+ identity: undefined;
406
+ generated: undefined;
407
+ }, {}, {}>;
408
+ icon: import("drizzle-orm/pg-core").PgColumn<{
409
+ name: "icon";
410
+ tableName: "topic";
411
+ dataType: "string";
412
+ columnType: "PgText";
413
+ data: string;
414
+ driverParam: string;
415
+ notNull: false;
416
+ hasDefault: false;
417
+ isPrimaryKey: false;
418
+ isAutoincrement: false;
419
+ hasRuntimeDefault: false;
420
+ enumValues: [string, ...string[]];
421
+ baseColumn: never;
422
+ identity: undefined;
423
+ generated: undefined;
424
+ }, {}, {}>;
425
+ subject: import("drizzle-orm/pg-core").PgColumn<{
426
+ name: "subject";
427
+ tableName: "topic";
428
+ dataType: "string";
429
+ columnType: "PgText";
430
+ data: "matemática" | "geografia" | "física" | "biologia" | "história" | "literatura" | "gramática" | "sociologia" | "química" | "filosofia" | "redação" | "artes" | "inglês";
431
+ driverParam: string;
432
+ notNull: true;
433
+ hasDefault: false;
434
+ isPrimaryKey: false;
435
+ isAutoincrement: false;
436
+ hasRuntimeDefault: false;
437
+ enumValues: [string, ...string[]];
438
+ baseColumn: never;
439
+ identity: undefined;
440
+ generated: undefined;
441
+ }, {}, {
442
+ $type: "matemática" | "geografia" | "física" | "biologia" | "história" | "literatura" | "gramática" | "sociologia" | "química" | "filosofia" | "redação" | "artes" | "inglês";
443
+ }>;
444
+ };
445
+ dialect: "pg";
446
+ }>>;
447
+ declare const cardMediaAliased: ColumnAliases<import("drizzle-orm/pg-core").PgTableWithColumns<{
448
+ name: "card_media";
449
+ schema: undefined;
450
+ columns: {
451
+ id: import("drizzle-orm/pg-core").PgColumn<{
452
+ name: "id";
453
+ tableName: "card_media";
454
+ dataType: "string";
455
+ columnType: "PgText";
456
+ data: string;
457
+ driverParam: string;
458
+ notNull: true;
459
+ hasDefault: true;
460
+ isPrimaryKey: true;
461
+ isAutoincrement: false;
462
+ hasRuntimeDefault: true;
463
+ enumValues: [string, ...string[]];
464
+ baseColumn: never;
465
+ identity: undefined;
466
+ generated: undefined;
467
+ }, {}, {}>;
468
+ cardId: import("drizzle-orm/pg-core").PgColumn<{
469
+ name: "card_id";
470
+ tableName: "card_media";
471
+ dataType: "string";
472
+ columnType: "PgText";
473
+ data: string;
474
+ driverParam: string;
475
+ notNull: true;
476
+ hasDefault: false;
477
+ isPrimaryKey: false;
478
+ isAutoincrement: false;
479
+ hasRuntimeDefault: false;
480
+ enumValues: [string, ...string[]];
481
+ baseColumn: never;
482
+ identity: undefined;
483
+ generated: undefined;
484
+ }, {}, {}>;
485
+ side: import("drizzle-orm/pg-core").PgColumn<{
486
+ name: "side";
487
+ tableName: "card_media";
488
+ dataType: "string";
489
+ columnType: "PgText";
490
+ data: "front" | "back";
491
+ driverParam: string;
492
+ notNull: true;
493
+ hasDefault: false;
494
+ isPrimaryKey: false;
495
+ isAutoincrement: false;
496
+ hasRuntimeDefault: false;
497
+ enumValues: ["front", "back"];
498
+ baseColumn: never;
499
+ identity: undefined;
500
+ generated: undefined;
501
+ }, {}, {}>;
502
+ url: import("drizzle-orm/pg-core").PgColumn<{
503
+ name: "url";
504
+ tableName: "card_media";
505
+ dataType: "string";
506
+ columnType: "PgText";
507
+ data: string;
508
+ driverParam: string;
509
+ notNull: true;
510
+ hasDefault: false;
511
+ isPrimaryKey: false;
512
+ isAutoincrement: false;
513
+ hasRuntimeDefault: false;
514
+ enumValues: [string, ...string[]];
515
+ baseColumn: never;
516
+ identity: undefined;
517
+ generated: undefined;
518
+ }, {}, {}>;
519
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
520
+ name: "created_at";
521
+ tableName: "card_media";
522
+ dataType: "date";
523
+ columnType: "PgTimestamp";
524
+ data: Date;
525
+ driverParam: string;
526
+ notNull: true;
527
+ hasDefault: true;
528
+ isPrimaryKey: false;
529
+ isAutoincrement: false;
530
+ hasRuntimeDefault: false;
531
+ enumValues: undefined;
532
+ baseColumn: never;
533
+ identity: undefined;
534
+ generated: undefined;
535
+ }, {}, {}>;
536
+ };
537
+ dialect: "pg";
538
+ }>>;
539
+ declare const userDeckStudiesAliased: ColumnAliases<import("drizzle-orm/pg-core").PgTableWithColumns<{
540
+ name: "user_deck_study";
541
+ schema: undefined;
542
+ columns: {
543
+ id: import("drizzle-orm/pg-core").PgColumn<{
544
+ name: "id";
545
+ tableName: "user_deck_study";
546
+ dataType: "string";
547
+ columnType: "PgText";
548
+ data: string;
549
+ driverParam: string;
550
+ notNull: true;
551
+ hasDefault: true;
552
+ isPrimaryKey: true;
553
+ isAutoincrement: false;
554
+ hasRuntimeDefault: true;
555
+ enumValues: [string, ...string[]];
556
+ baseColumn: never;
557
+ identity: undefined;
558
+ generated: undefined;
559
+ }, {}, {}>;
560
+ deckId: import("drizzle-orm/pg-core").PgColumn<{
561
+ name: "deck_id";
562
+ tableName: "user_deck_study";
563
+ dataType: "string";
564
+ columnType: "PgText";
565
+ data: string;
566
+ driverParam: string;
567
+ notNull: true;
568
+ hasDefault: false;
569
+ isPrimaryKey: false;
570
+ isAutoincrement: false;
571
+ hasRuntimeDefault: false;
572
+ enumValues: [string, ...string[]];
573
+ baseColumn: never;
574
+ identity: undefined;
575
+ generated: undefined;
576
+ }, {}, {}>;
577
+ userId: import("drizzle-orm/pg-core").PgColumn<{
578
+ name: "user_id";
579
+ tableName: "user_deck_study";
580
+ dataType: "string";
581
+ columnType: "PgText";
582
+ data: string;
583
+ driverParam: string;
584
+ notNull: true;
585
+ hasDefault: false;
586
+ isPrimaryKey: false;
587
+ isAutoincrement: false;
588
+ hasRuntimeDefault: false;
589
+ enumValues: [string, ...string[]];
590
+ baseColumn: never;
591
+ identity: undefined;
592
+ generated: undefined;
593
+ }, {}, {}>;
594
+ suspended: import("drizzle-orm/pg-core").PgColumn<{
595
+ name: "suspended";
596
+ tableName: "user_deck_study";
597
+ dataType: "boolean";
598
+ columnType: "PgBoolean";
599
+ data: boolean;
600
+ driverParam: boolean;
601
+ notNull: true;
602
+ hasDefault: true;
603
+ isPrimaryKey: false;
604
+ isAutoincrement: false;
605
+ hasRuntimeDefault: false;
606
+ enumValues: undefined;
607
+ baseColumn: never;
608
+ identity: undefined;
609
+ generated: undefined;
610
+ }, {}, {}>;
611
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
612
+ name: "created_at";
613
+ tableName: "user_deck_study";
614
+ dataType: "date";
615
+ columnType: "PgTimestamp";
616
+ data: Date;
617
+ driverParam: string;
618
+ notNull: true;
619
+ hasDefault: true;
620
+ isPrimaryKey: false;
621
+ isAutoincrement: false;
622
+ hasRuntimeDefault: false;
623
+ enumValues: undefined;
624
+ baseColumn: never;
625
+ identity: undefined;
626
+ generated: undefined;
627
+ }, {}, {}>;
628
+ };
629
+ dialect: "pg";
630
+ }>>;
631
+ export { cardMediaAliased, cardsAliased, decksAliased, topicsAliased, userDeckStudiesAliased };
@@ -0,0 +1,31 @@
1
+ import { asc, desc, type SQL, sql } from 'drizzle-orm';
2
+ import type { PgColumn } from 'drizzle-orm/pg-core';
3
+ declare const paginationModel: import("@sinclair/typebox").TObject<{
4
+ page: import("@sinclair/typebox").TNumber;
5
+ size: import("@sinclair/typebox").TNumber;
6
+ }>;
7
+ type Pagination = typeof paginationModel.static;
8
+ declare const sortModel: import("@sinclair/typebox").TObject<{
9
+ sort: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
+ order: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"asc">, import("@sinclair/typebox").TLiteral<"desc">]>>;
11
+ }>;
12
+ type Sort = typeof sortModel.static;
13
+ declare const searchModel: import("@sinclair/typebox").TObject<{
14
+ q: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
15
+ }>;
16
+ type Search = typeof searchModel.static;
17
+ type Paginated<T, TAggData = {}> = {
18
+ data: T[];
19
+ pageCount: number;
20
+ total: number;
21
+ } & TAggData;
22
+ type OrderByField = PgColumn | ReturnType<typeof sql>;
23
+ export declare function buildOrderByClause(sortMapping: Record<string, OrderByField | OrderByField[]>, sortColumn: string | undefined, sortDirection: 'asc' | 'desc' | undefined): (ReturnType<typeof asc> | ReturnType<typeof desc>)[];
24
+ export declare function buildSearchFilter(search: string | undefined, columnsToSearch: PgColumn[], searchOperator?: 'or' | 'and'): SQL<unknown>;
25
+ export declare function buildArraySearchFilter(search: string | undefined, column: PgColumn): SQL;
26
+ export declare const paginateResults: <T, TOtherData = {}>(data: T[], { size, total }: {
27
+ size: number;
28
+ total: number;
29
+ }, aggregatedData?: TOtherData) => Paginated<T, TOtherData>;
30
+ export { paginationModel, searchModel, sortModel };
31
+ export type { Paginated, Pagination, Search, Sort };