@sekolaos/shared-schema 1.0.3 → 1.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 (63) hide show
  1. package/dist/cjs/academic/academic-year.schema.js +8 -1
  2. package/dist/cjs/academic/academic-year.schema.js.map +1 -1
  3. package/dist/cjs/academic/class-room.schema.js +10 -3
  4. package/dist/cjs/academic/class-room.schema.js.map +1 -1
  5. package/dist/cjs/academic/subject.schema.js +11 -2
  6. package/dist/cjs/academic/subject.schema.js.map +1 -1
  7. package/dist/cjs/academic/teaching-schedule.schema.js +10 -1
  8. package/dist/cjs/academic/teaching-schedule.schema.js.map +1 -1
  9. package/dist/cjs/attendance/attendance-class.schema.js +9 -1
  10. package/dist/cjs/attendance/attendance-class.schema.js.map +1 -1
  11. package/dist/cjs/attendance/attendance-kiosk.schema.js +48 -1
  12. package/dist/cjs/attendance/attendance-kiosk.schema.js.map +1 -1
  13. package/dist/cjs/attendance/barcode-rolling.schema.js +27 -1
  14. package/dist/cjs/attendance/barcode-rolling.schema.js.map +1 -1
  15. package/dist/cjs/attendance/picket-assignment.schema.js +7 -1
  16. package/dist/cjs/attendance/picket-assignment.schema.js.map +1 -1
  17. package/dist/cjs/common/common.schema.js +15 -1
  18. package/dist/cjs/common/common.schema.js.map +1 -1
  19. package/dist/cjs/tenant/tenant.schema.js +37 -1
  20. package/dist/cjs/tenant/tenant.schema.js.map +1 -1
  21. package/dist/cjs/user/student.schema.js +12 -1
  22. package/dist/cjs/user/student.schema.js.map +1 -1
  23. package/dist/cjs/user/user.schema.js +10 -1
  24. package/dist/cjs/user/user.schema.js.map +1 -1
  25. package/dist/esm/academic/academic-year.schema.js +8 -1
  26. package/dist/esm/academic/academic-year.schema.js.map +1 -1
  27. package/dist/esm/academic/class-room.schema.js +10 -3
  28. package/dist/esm/academic/class-room.schema.js.map +1 -1
  29. package/dist/esm/academic/subject.schema.js +11 -2
  30. package/dist/esm/academic/subject.schema.js.map +1 -1
  31. package/dist/esm/academic/teaching-schedule.schema.js +9 -0
  32. package/dist/esm/academic/teaching-schedule.schema.js.map +1 -1
  33. package/dist/esm/attendance/attendance-class.schema.js +8 -0
  34. package/dist/esm/attendance/attendance-class.schema.js.map +1 -1
  35. package/dist/esm/attendance/attendance-kiosk.schema.js +48 -1
  36. package/dist/esm/attendance/attendance-kiosk.schema.js.map +1 -1
  37. package/dist/esm/attendance/barcode-rolling.schema.js +26 -0
  38. package/dist/esm/attendance/barcode-rolling.schema.js.map +1 -1
  39. package/dist/esm/attendance/picket-assignment.schema.js +7 -1
  40. package/dist/esm/attendance/picket-assignment.schema.js.map +1 -1
  41. package/dist/esm/common/common.schema.js +14 -0
  42. package/dist/esm/common/common.schema.js.map +1 -1
  43. package/dist/esm/tenant/tenant.schema.js +36 -0
  44. package/dist/esm/tenant/tenant.schema.js.map +1 -1
  45. package/dist/esm/user/student.schema.js +12 -1
  46. package/dist/esm/user/student.schema.js.map +1 -1
  47. package/dist/esm/user/user.schema.js +10 -1
  48. package/dist/esm/user/user.schema.js.map +1 -1
  49. package/dist/types/academic/academic-year.schema.d.ts +29 -4
  50. package/dist/types/academic/class-room.schema.d.ts +37 -12
  51. package/dist/types/academic/subject.schema.d.ts +25 -2
  52. package/dist/types/academic/teaching-schedule.schema.d.ts +25 -0
  53. package/dist/types/attendance/attendance-class.schema.d.ts +23 -0
  54. package/dist/types/attendance/attendance-kiosk.schema.d.ts +281 -0
  55. package/dist/types/attendance/barcode-rolling.schema.d.ts +75 -0
  56. package/dist/types/attendance/picket-assignment.schema.d.ts +17 -0
  57. package/dist/types/auth/role.schema.d.ts +4 -4
  58. package/dist/types/common/common.schema.d.ts +12 -0
  59. package/dist/types/tenant/attendance-shift.schema.d.ts +8 -8
  60. package/dist/types/tenant/tenant.schema.d.ts +79 -5
  61. package/dist/types/user/student.schema.d.ts +37 -0
  62. package/dist/types/user/user.schema.d.ts +33 -2
  63. package/package.json +1 -1
@@ -43,4 +43,13 @@ export const updateTeachingScheduleSchema = teachingScheduleObjectSchema
43
43
  message: "Jam selesai harus lebih besar dari jam mulai",
44
44
  path: ["endTime"],
45
45
  });
46
+ export const teachingScheduleParamsSchema = z.object({
47
+ id: uuidSchema,
48
+ });
49
+ export const teachingScheduleListQuerySchema = z.object({
50
+ academicYearId: uuidSchema.optional(),
51
+ classroomId: uuidSchema.optional(),
52
+ teacherUserId: uuidSchema.optional(),
53
+ subjectId: uuidSchema.optional(),
54
+ });
46
55
  //# sourceMappingURL=teaching-schedule.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teaching-schedule.schema.js","sourceRoot":"","sources":["../../../src/academic/teaching-schedule.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAElE,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,CAAmD,MAAoB,EAAE,EAAE,CAClG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE;IACjE,OAAO,EAAE,8CAA8C;IACvD,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAC1D,4BAA4B,CAAC,IAAI,CAAC;IAChC,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,4BAA4B;KACrE,IAAI,CAAC;IACJ,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC;KACD,OAAO,EAAE;KACT,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE;IACvG,OAAO,EAAE,8CAA8C;IACvD,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"teaching-schedule.schema.js","sourceRoot":"","sources":["../../../src/academic/teaching-schedule.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAElE,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,UAAU;IACvB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,CAAmD,MAAoB,EAAE,EAAE,CAClG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE;IACjE,OAAO,EAAE,8CAA8C;IACvD,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,4BAA4B,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAC1D,4BAA4B,CAAC,IAAI,CAAC;IAChC,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,4BAA4B;KACrE,IAAI,CAAC;IACJ,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;CAClB,CAAC;KACD,OAAO,EAAE;KACT,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE;IACvG,OAAO,EAAE,8CAA8C;IACvD,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,EAAE,EAAE,UAAU;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,cAAc,EAAE,UAAU,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,UAAU,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC"}
@@ -13,4 +13,12 @@ export const updateClassAttendanceRequestSchema = z.object({
13
13
  date: z.string().date(),
14
14
  attendances: z.array(classAttendanceUpdateItemSchema).min(1),
15
15
  });
16
+ export const classUpdateAttendanceResultSchema = z.object({
17
+ teachingScheduleId: uuidSchema,
18
+ classroomId: uuidSchema,
19
+ date: z.string(),
20
+ totalReceived: z.number().int(),
21
+ totalCreated: z.number().int(),
22
+ totalUpdated: z.number().int(),
23
+ });
16
24
  //# sourceMappingURL=attendance-class.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attendance-class.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-class.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAmB,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,kBAAkB,EAAE,UAAU;IAC9B,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,UAAU;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"attendance-class.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-class.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAmB,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,kBAAkB,EAAE,UAAU;IAC9B,cAAc,EAAE,UAAU;IAC1B,WAAW,EAAE,UAAU;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,kBAAkB,EAAE,UAAU;IAC9B,WAAW,EAAE,UAAU;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC/B,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { uuidSchema, timestampSchema } from "../common/common.schema.js";
2
+ import { dateStringSchema, uuidSchema, timestampSchema } from "../common/common.schema.js";
3
3
  export const attendanceStatusEnum = z.enum([
4
4
  "HADIR",
5
5
  "TERLAMBAT",
@@ -29,4 +29,51 @@ export const batchSyncAttendanceResponseSchema = z.object({
29
29
  totalDuplicates: z.number().int(),
30
30
  duplicateClientUuids: z.array(uuidSchema),
31
31
  });
32
+ /** Query `GET /attendance/history`: batas tanggal inklusif dalam zona waktu tenant. */
33
+ export const attendanceHistoryQuerySchema = z
34
+ .object({
35
+ from: dateStringSchema,
36
+ to: dateStringSchema,
37
+ classroomId: uuidSchema.optional(),
38
+ studentId: uuidSchema.optional(),
39
+ status: attendanceStatusEnum.optional(),
40
+ page: z.coerce.number().int().positive().default(1),
41
+ limit: z.coerce.number().int().positive().max(200).default(50),
42
+ })
43
+ .refine((query) => query.from <= query.to, {
44
+ message: "Tanggal 'from' tidak boleh melewati tanggal 'to'",
45
+ path: ["from"],
46
+ });
47
+ export const attendanceHistoryItemSchema = z.object({
48
+ id: uuidSchema,
49
+ clientUuid: uuidSchema,
50
+ barcodeScanned: z.string().nullable(),
51
+ status: attendanceStatusEnum,
52
+ source: z.enum(["KIOSK", "CLASS"]),
53
+ scannedAt: z.string(),
54
+ notes: z.string().nullable(),
55
+ student: z.object({
56
+ id: uuidSchema,
57
+ nis: z.string(),
58
+ fullName: z.string(),
59
+ gender: z.enum(["L", "P"]),
60
+ photoUrl: z.string().nullable(),
61
+ classroomId: uuidSchema.nullable(),
62
+ }),
63
+ classroom: z
64
+ .object({
65
+ id: uuidSchema,
66
+ name: z.string(),
67
+ })
68
+ .nullable(),
69
+ });
70
+ export const attendanceHistoryResultSchema = z.object({
71
+ items: z.array(attendanceHistoryItemSchema),
72
+ meta: z.object({
73
+ currentPage: z.number().int().positive(),
74
+ pageSize: z.number().int().positive(),
75
+ totalItems: z.number().int().nonnegative(),
76
+ totalPages: z.number().int().nonnegative(),
77
+ }),
78
+ });
32
79
  //# sourceMappingURL=attendance-kiosk.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attendance-kiosk.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-kiosk.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,SAAS,EAAE,eAAe;IAC1B,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,UAAU;IAC5B,cAAc,EAAE,UAAU;IAC1B,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,wDAAwD,CAAC;CACvG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACjC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;CAC1C,CAAC,CAAC"}
1
+ {"version":3,"file":"attendance-kiosk.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-kiosk.schema.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,30 @@ export const teacherScanDynamicBarcodeRequestSchema = z.object({
12
12
  scannedPayload: z.string().min(10),
13
13
  scannedAt: timestampSchema,
14
14
  });
15
+ export const dynamicBarcodeStreamQuerySchema = z.object({
16
+ format: z.enum(["json", "text"]).default("json"),
17
+ });
18
+ export const dynamicBarcodeStreamResultSchema = z.object({
19
+ token: z.string(),
20
+ tenantId: uuidSchema,
21
+ windowSeconds: z.number().int().positive(),
22
+ windowIndex: z.number().int().nonnegative(),
23
+ generatedAt: z.string(),
24
+ expiresAt: z.string(),
25
+ expiresAtEpoch: z.number().int(),
26
+ remainingSeconds: z.number().int().nonnegative(),
27
+ });
28
+ export const dynamicBarcodeVerifyResultSchema = z.object({
29
+ valid: z.literal(true),
30
+ tenantId: uuidSchema,
31
+ teacherUserId: uuidSchema,
32
+ teacherName: z.string().optional(),
33
+ method: z.string(),
34
+ windowIndex: z.number().int().nonnegative(),
35
+ windowSeconds: z.number().int().positive(),
36
+ scannedAt: z.string(),
37
+ attendanceLogId: uuidSchema,
38
+ picketAssignmentId: uuidSchema.optional(),
39
+ picketLocation: z.string().optional(),
40
+ });
15
41
  //# sourceMappingURL=barcode-rolling.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"barcode-rolling.schema.js","sourceRoot":"","sources":["../../../src/attendance/barcode-rolling.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"barcode-rolling.schema.js","sourceRoot":"","sources":["../../../src/attendance/barcode-rolling.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,UAAU;IAC3B,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { uuidSchema } from "../common/common.schema.js";
2
+ import { booleanQuerySchema, uuidSchema } from "../common/common.schema.js";
3
3
  import { dayOfWeekEnum } from "../academic/teaching-schedule.schema.js";
4
4
  export const picketLocationSchema = z.string().trim().min(1).max(100);
5
5
  export const picketAssignmentSchema = z.object({
@@ -18,4 +18,10 @@ export const createPicketAssignmentSchema = picketAssignmentSchema.pick({
18
18
  dayOfWeek: true,
19
19
  location: true,
20
20
  });
21
+ export const picketScheduleListQuerySchema = z.object({
22
+ academicYearId: uuidSchema.optional(),
23
+ teacherUserId: uuidSchema.optional(),
24
+ dayOfWeek: dayOfWeekEnum.optional(),
25
+ isActive: booleanQuerySchema,
26
+ });
21
27
  //# sourceMappingURL=picket-assignment.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picket-assignment.schema.js","sourceRoot":"","sources":["../../../src/attendance/picket-assignment.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,UAAU;IAC1B,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC,IAAI,CAAC;IACtE,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC"}
1
+ {"version":3,"file":"picket-assignment.schema.js","sourceRoot":"","sources":["../../../src/attendance/picket-assignment.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,cAAc,EAAE,UAAU;IAC1B,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,sBAAsB,CAAC,IAAI,CAAC;IACtE,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,cAAc,EAAE,UAAU,CAAC,QAAQ,EAAE;IACrC,aAAa,EAAE,UAAU,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,kBAAkB;CAC7B,CAAC,CAAC"}
@@ -3,6 +3,20 @@ export const uuidSchema = z.string().uuid({ message: "Format UUID tidak valid" }
3
3
  export const timestampSchema = z.string().datetime({ message: "Format ISO datetime tidak valid" });
4
4
  export const dateStringSchema = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Format tanggal harus YYYY-MM-DD");
5
5
  export const timeStringSchema = z.string().regex(/^([01]\d|2[0-3]):([0-5]\d)$/, "Format jam harus HH:mm (contoh: 07:00)");
6
+ /**
7
+ * Query string `?isActive=true|false` yang dikoersi menjadi boolean,
8
+ * kompatibel dengan Express (`req.query` berisi string).
9
+ */
10
+ export const booleanQuerySchema = z
11
+ .enum(["true", "false"])
12
+ .optional()
13
+ .transform((value) => (value === undefined ? undefined : value === "true"));
14
+ /** Bentuk pagination `?page&limit` dengan default dan batas yang konsisten. */
15
+ export const paginationQueryShape = {
16
+ page: z.coerce.number().int().positive().default(1),
17
+ limit: z.coerce.number().int().positive().max(100).default(20),
18
+ search: z.string().trim().optional(),
19
+ };
6
20
  export const baseResponseSchema = (dataSchema) => z.object({
7
21
  success: z.boolean(),
8
22
  message: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"common.schema.js","sourceRoot":"","sources":["../../../src/common/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;AAE3G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE,wCAAwC,CAAC,CAAC;AAE1H,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAyB,UAAa,EAAE,EAAE,CAC1E,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,UAAU;CACjB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH,CAAC,QAAQ,EAAE;CACb,CAAC,CAAC"}
1
+ {"version":3,"file":"common.schema.js","sourceRoot":"","sources":["../../../src/common/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,iCAAiC,CAAC,CAAC;AAE3G,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE,wCAAwC,CAAC,CAAC;AAE1H;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvB,QAAQ,EAAE;KACV,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC;AAE9E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC;AAIF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAyB,UAAa,EAAE,EAAE,CAC1E,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,UAAU;CACjB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CACH,CAAC,QAAQ,EAAE;CACb,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { uuidSchema, timestampSchema } from "../common/common.schema.js";
3
+ import { shiftTargetTypeEnum } from "./attendance-shift.schema.js";
3
4
  export const tenantSchema = z.object({
4
5
  id: uuidSchema,
5
6
  slug: z.string().min(3).max(50).regex(/^[a-z0-9-]+$/, "Slug hanya boleh berisi huruf kecil, angka, dan strip"),
@@ -17,4 +18,39 @@ export const createTenantSchema = tenantSchema.pick({
17
18
  logoUrl: true,
18
19
  timezone: true,
19
20
  });
21
+ export const npsnSchema = z.string().regex(/^\d{8}$/, "NPSN harus berupa 8 digit angka");
22
+ export const phoneSchema = z.string().regex(/^\+?[0-9]{8,15}$/, "Nomor telepon tidak valid (8-15 digit)");
23
+ /**
24
+ * Profil sekolah dapat diperbarui oleh admin sekolah. `slug` sengaja tidak
25
+ * termasuk karena dipakai pada URL layanan dan sesi login lintas subdomain.
26
+ */
27
+ export const updateTenantProfileSchema = z.object({
28
+ name: z.string().trim().min(3).max(255).optional(),
29
+ npsn: npsnSchema.nullish(),
30
+ logoUrl: z.string().url().max(2048).nullish(),
31
+ timezone: z.string().min(1).max(50).optional(),
32
+ address: z.string().trim().max(255).nullish(),
33
+ phone: phoneSchema.nullish(),
34
+ });
35
+ export const tenantParamsSchema = z.object({
36
+ id: uuidSchema,
37
+ });
38
+ export const attendanceShiftParamsSchema = z.object({
39
+ targetType: shiftTargetTypeEnum,
40
+ });
41
+ export const attendanceShiftListQuerySchema = z.object({
42
+ targetType: shiftTargetTypeEnum.optional(),
43
+ });
44
+ /**
45
+ * Body `PUT /tenants/shifts` memuat satu atau kedua shift sekaligus sehingga
46
+ * admin dapat menyimpan form jam presensi dalam satu permintaan.
47
+ */
48
+ export const upsertAttendanceShiftsSchema = z
49
+ .object({
50
+ SISWA: z.any().optional(),
51
+ GURU: z.any().optional(),
52
+ })
53
+ .refine((payload) => Boolean(payload.SISWA ?? payload.GURU), {
54
+ message: "Minimal kirimkan konfigurasi shift 'SISWA' atau 'GURU'",
55
+ });
20
56
  //# sourceMappingURL=tenant.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tenant.schema.js","sourceRoot":"","sources":["../../../src/tenant/tenant.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,uDAAuD,CAAC;IAC9G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5C,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC;IAClD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC"}
1
+ {"version":3,"file":"tenant.schema.js","sourceRoot":"","sources":["../../../src/tenant/tenant.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,uDAAuD,CAAC;IAC9G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;IAC5C,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC;IAClD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AAEzF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,CAAC;AAE1G;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAClD,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,WAAW,CAAC,OAAO,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,UAAU;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,mBAAmB;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACzB,CAAC;KACD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;IAC3D,OAAO,EAAE,wDAAwD;CAClE,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { uuidSchema } from "../common/common.schema.js";
2
+ import { booleanQuerySchema, paginationQueryShape, uuidSchema } from "../common/common.schema.js";
3
3
  export const genderEnum = z.enum(["L", "P"]);
4
4
  export const nisSchema = z.string().min(3).max(30);
5
5
  export const nisnSchema = z.string().regex(/^\d{10}$/, "NISN harus 10 digit angka");
@@ -61,4 +61,15 @@ export const bulkImportStudentResponseSchema = z.object({
61
61
  message: z.string(),
62
62
  })),
63
63
  });
64
+ export const studentParamsSchema = z.object({
65
+ id: uuidSchema,
66
+ });
67
+ export const studentListQuerySchema = z.object({
68
+ ...paginationQueryShape,
69
+ sortBy: z.enum(["fullName", "nis"]).default("fullName"),
70
+ sortOrder: z.enum(["asc", "desc"]).default("asc"),
71
+ classroomId: uuidSchema.optional(),
72
+ academicYearId: uuidSchema.optional(),
73
+ isActive: booleanQuerySchema,
74
+ });
64
75
  //# sourceMappingURL=student.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"student.schema.js","sourceRoot":"","sources":["../../../src/user/student.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"student.schema.js","sourceRoot":"","sources":["../../../src/user/student.schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { timestampSchema, uuidSchema } from "../common/common.schema.js";
2
+ import { booleanQuerySchema, paginationQueryShape, timestampSchema, uuidSchema } from "../common/common.schema.js";
3
3
  import { authenticatedUserRoleSummarySchema } from "../auth/auth.schema.js";
4
4
  export const usernameSchema = z
5
5
  .string()
@@ -50,4 +50,13 @@ export const assignUserRolesRequestSchema = z.object({
50
50
  academicYearId: uuidSchema,
51
51
  roleIds: z.array(uuidSchema).min(1, "Minimal pilih 1 peran"),
52
52
  });
53
+ export const teacherParamsSchema = z.object({
54
+ id: uuidSchema,
55
+ });
56
+ export const teacherListQuerySchema = z.object({
57
+ ...paginationQueryShape,
58
+ roleId: uuidSchema.optional(),
59
+ academicYearId: uuidSchema.optional(),
60
+ isActive: booleanQuerySchema,
61
+ });
53
62
  //# sourceMappingURL=user.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.schema.js","sourceRoot":"","sources":["../../../src/user/user.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.schema.js","sourceRoot":"","sources":["../../../src/user/user.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE5E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CAAC,mBAAmB,EAAE,wEAAwE,CAAC,CAAC;AAExG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,yCAAyC,CAAC,CAAC;AAE3G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,CAAC;AAEhH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,QAAQ,EAAE;IAC7D,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IACnE,cAAc,EAAE,UAAU;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACpD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC,OAAO,EAAE,CAAC;AAEb,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,UAAU;IAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,UAAU;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,GAAG,oBAAoB;IACvB,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE;IAC7B,cAAc,EAAE,UAAU,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,kBAAkB;CAC7B,CAAC,CAAC"}
@@ -3,32 +3,32 @@ export declare const semesterEnum: z.ZodEnum<["GANJIL", "GENAP"]>;
3
3
  export declare const academicYearNameSchema: z.ZodString;
4
4
  export declare const academicYearSchema: z.ZodEffects<z.ZodType<{
5
5
  id: string;
6
- name: string;
7
6
  tenantId: string;
7
+ name: string;
8
8
  isActive: boolean;
9
9
  semester: "GANJIL" | "GENAP";
10
10
  startDate: string;
11
11
  endDate: string;
12
12
  }, z.ZodTypeDef, {
13
13
  id: string;
14
- name: string;
15
14
  tenantId: string;
15
+ name: string;
16
16
  isActive: boolean;
17
17
  semester: "GANJIL" | "GENAP";
18
18
  startDate: string;
19
19
  endDate: string;
20
20
  }>, {
21
21
  id: string;
22
- name: string;
23
22
  tenantId: string;
23
+ name: string;
24
24
  isActive: boolean;
25
25
  semester: "GANJIL" | "GENAP";
26
26
  startDate: string;
27
27
  endDate: string;
28
28
  }, {
29
29
  id: string;
30
- name: string;
31
30
  tenantId: string;
31
+ name: string;
32
32
  isActive: boolean;
33
33
  semester: "GANJIL" | "GENAP";
34
34
  startDate: string;
@@ -88,8 +88,33 @@ export declare const activateAcademicYearSchema: z.ZodObject<{
88
88
  }, {
89
89
  academicYearId: string;
90
90
  }>;
91
+ export declare const academicYearParamsSchema: z.ZodObject<{
92
+ id: z.ZodString;
93
+ }, "strip", z.ZodTypeAny, {
94
+ id: string;
95
+ }, {
96
+ id: string;
97
+ }>;
98
+ export declare const academicYearListQuerySchema: z.ZodObject<{
99
+ semester: z.ZodOptional<z.ZodEnum<["GANJIL", "GENAP"]>>;
100
+ page: z.ZodDefault<z.ZodNumber>;
101
+ limit: z.ZodDefault<z.ZodNumber>;
102
+ search: z.ZodOptional<z.ZodString>;
103
+ }, "strip", z.ZodTypeAny, {
104
+ page: number;
105
+ limit: number;
106
+ search?: string | undefined;
107
+ semester?: "GANJIL" | "GENAP" | undefined;
108
+ }, {
109
+ page?: number | undefined;
110
+ limit?: number | undefined;
111
+ search?: string | undefined;
112
+ semester?: "GANJIL" | "GENAP" | undefined;
113
+ }>;
91
114
  export type Semester = z.infer<typeof semesterEnum>;
92
115
  export type AcademicYear = z.infer<typeof academicYearSchema>;
93
116
  export type CreateAcademicYearInput = z.infer<typeof createAcademicYearSchema>;
94
117
  export type UpdateAcademicYearInput = z.infer<typeof updateAcademicYearSchema>;
95
118
  export type ActivateAcademicYearInput = z.infer<typeof activateAcademicYearSchema>;
119
+ export type AcademicYearParams = z.infer<typeof academicYearParamsSchema>;
120
+ export type AcademicYearListQuery = z.infer<typeof academicYearListQuerySchema>;
@@ -5,25 +5,25 @@ export declare const classroomSchema: z.ZodObject<{
5
5
  academicYearId: z.ZodString;
6
6
  name: z.ZodString;
7
7
  gradeLevel: z.ZodString;
8
- homeroomTeacherId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
8
+ homeroomTeacherUserId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
9
9
  homeroomTeacherName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
10
10
  totalStudents: z.ZodDefault<z.ZodNumber>;
11
11
  }, "strip", z.ZodTypeAny, {
12
12
  id: string;
13
- name: string;
14
13
  tenantId: string;
14
+ name: string;
15
15
  academicYearId: string;
16
16
  gradeLevel: string;
17
17
  totalStudents: number;
18
- homeroomTeacherId?: string | null | undefined;
18
+ homeroomTeacherUserId?: string | null | undefined;
19
19
  homeroomTeacherName?: string | null | undefined;
20
20
  }, {
21
21
  id: string;
22
- name: string;
23
22
  tenantId: string;
23
+ name: string;
24
24
  academicYearId: string;
25
25
  gradeLevel: string;
26
- homeroomTeacherId?: string | null | undefined;
26
+ homeroomTeacherUserId?: string | null | undefined;
27
27
  homeroomTeacherName?: string | null | undefined;
28
28
  totalStudents?: number | undefined;
29
29
  }>;
@@ -33,35 +33,58 @@ export declare const createClassroomSchema: z.ZodObject<Pick<{
33
33
  academicYearId: z.ZodString;
34
34
  name: z.ZodString;
35
35
  gradeLevel: z.ZodString;
36
- homeroomTeacherId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
36
+ homeroomTeacherUserId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
37
37
  homeroomTeacherName: z.ZodNullable<z.ZodOptional<z.ZodString>>;
38
38
  totalStudents: z.ZodDefault<z.ZodNumber>;
39
- }, "name" | "academicYearId" | "gradeLevel" | "homeroomTeacherId">, "strip", z.ZodTypeAny, {
39
+ }, "name" | "academicYearId" | "gradeLevel" | "homeroomTeacherUserId">, "strip", z.ZodTypeAny, {
40
40
  name: string;
41
41
  academicYearId: string;
42
42
  gradeLevel: string;
43
- homeroomTeacherId?: string | null | undefined;
43
+ homeroomTeacherUserId?: string | null | undefined;
44
44
  }, {
45
45
  name: string;
46
46
  academicYearId: string;
47
47
  gradeLevel: string;
48
- homeroomTeacherId?: string | null | undefined;
48
+ homeroomTeacherUserId?: string | null | undefined;
49
49
  }>;
50
50
  export declare const updateClassroomSchema: z.ZodObject<{
51
51
  name: z.ZodOptional<z.ZodString>;
52
52
  academicYearId: z.ZodOptional<z.ZodString>;
53
53
  gradeLevel: z.ZodOptional<z.ZodString>;
54
- homeroomTeacherId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
54
+ homeroomTeacherUserId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
55
55
  }, "strip", z.ZodTypeAny, {
56
56
  name?: string | undefined;
57
57
  academicYearId?: string | undefined;
58
58
  gradeLevel?: string | undefined;
59
- homeroomTeacherId?: string | null | undefined;
59
+ homeroomTeacherUserId?: string | null | undefined;
60
60
  }, {
61
61
  name?: string | undefined;
62
62
  academicYearId?: string | undefined;
63
63
  gradeLevel?: string | undefined;
64
- homeroomTeacherId?: string | null | undefined;
64
+ homeroomTeacherUserId?: string | null | undefined;
65
+ }>;
66
+ export declare const classroomParamsSchema: z.ZodObject<{
67
+ id: z.ZodString;
68
+ }, "strip", z.ZodTypeAny, {
69
+ id: string;
70
+ }, {
71
+ id: string;
72
+ }>;
73
+ export declare const classroomListQuerySchema: z.ZodObject<{
74
+ academicYearId: z.ZodOptional<z.ZodString>;
75
+ page: z.ZodDefault<z.ZodNumber>;
76
+ limit: z.ZodDefault<z.ZodNumber>;
77
+ search: z.ZodOptional<z.ZodString>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ page: number;
80
+ limit: number;
81
+ search?: string | undefined;
82
+ academicYearId?: string | undefined;
83
+ }, {
84
+ page?: number | undefined;
85
+ limit?: number | undefined;
86
+ search?: string | undefined;
87
+ academicYearId?: string | undefined;
65
88
  }>;
66
89
  export declare const promoteClassStudentsSchema: z.ZodObject<{
67
90
  sourceClassroomId: z.ZodString;
@@ -84,3 +107,5 @@ export type Classroom = ClassRoom;
84
107
  export type CreateClassroomInput = z.infer<typeof createClassroomSchema>;
85
108
  export type UpdateClassroomInput = z.infer<typeof updateClassroomSchema>;
86
109
  export type PromoteClassStudentsInput = z.infer<typeof promoteClassStudentsSchema>;
110
+ export type ClassroomParams = z.infer<typeof classroomParamsSchema>;
111
+ export type ClassroomListQuery = z.infer<typeof classroomListQuerySchema>;
@@ -10,15 +10,15 @@ export declare const subjectSchema: z.ZodObject<{
10
10
  }, "strip", z.ZodTypeAny, {
11
11
  code: string;
12
12
  id: string;
13
- name: string;
14
13
  tenantId: string;
14
+ name: string;
15
15
  isActive: boolean;
16
16
  description?: string | null | undefined;
17
17
  }, {
18
18
  code: string;
19
19
  id: string;
20
- name: string;
21
20
  tenantId: string;
21
+ name: string;
22
22
  isActive?: boolean | undefined;
23
23
  description?: string | null | undefined;
24
24
  }>;
@@ -42,15 +42,38 @@ export declare const updateSubjectSchema: z.ZodObject<{
42
42
  code: z.ZodOptional<z.ZodString>;
43
43
  name: z.ZodOptional<z.ZodString>;
44
44
  description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
45
+ } & {
46
+ isActive: z.ZodOptional<z.ZodBoolean>;
45
47
  }, "strip", z.ZodTypeAny, {
46
48
  code?: string | undefined;
47
49
  name?: string | undefined;
50
+ isActive?: boolean | undefined;
48
51
  description?: string | null | undefined;
49
52
  }, {
50
53
  code?: string | undefined;
51
54
  name?: string | undefined;
55
+ isActive?: boolean | undefined;
52
56
  description?: string | null | undefined;
53
57
  }>;
58
+ export declare const subjectParamsSchema: z.ZodObject<{
59
+ id: z.ZodString;
60
+ }, "strip", z.ZodTypeAny, {
61
+ id: string;
62
+ }, {
63
+ id: string;
64
+ }>;
65
+ export declare const subjectListQuerySchema: z.ZodObject<{
66
+ search: z.ZodOptional<z.ZodString>;
67
+ isActive: z.ZodEffects<z.ZodOptional<z.ZodEnum<["true", "false"]>>, boolean | undefined, "true" | "false" | undefined>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ search?: string | undefined;
70
+ isActive?: boolean | undefined;
71
+ }, {
72
+ search?: string | undefined;
73
+ isActive?: "true" | "false" | undefined;
74
+ }>;
54
75
  export type Subject = z.infer<typeof subjectSchema>;
55
76
  export type CreateSubjectInput = z.infer<typeof createSubjectSchema>;
56
77
  export type UpdateSubjectInput = z.infer<typeof updateSubjectSchema>;
78
+ export type SubjectParams = z.infer<typeof subjectParamsSchema>;
79
+ export type SubjectListQuery = z.infer<typeof subjectListQuerySchema>;
@@ -141,7 +141,32 @@ export declare const updateTeachingScheduleSchema: z.ZodEffects<z.ZodObject<{
141
141
  endTime?: string | undefined;
142
142
  periodNumber?: number | undefined;
143
143
  }>;
144
+ export declare const teachingScheduleParamsSchema: z.ZodObject<{
145
+ id: z.ZodString;
146
+ }, "strip", z.ZodTypeAny, {
147
+ id: string;
148
+ }, {
149
+ id: string;
150
+ }>;
151
+ export declare const teachingScheduleListQuerySchema: z.ZodObject<{
152
+ academicYearId: z.ZodOptional<z.ZodString>;
153
+ classroomId: z.ZodOptional<z.ZodString>;
154
+ teacherUserId: z.ZodOptional<z.ZodString>;
155
+ subjectId: z.ZodOptional<z.ZodString>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ academicYearId?: string | undefined;
158
+ classroomId?: string | undefined;
159
+ teacherUserId?: string | undefined;
160
+ subjectId?: string | undefined;
161
+ }, {
162
+ academicYearId?: string | undefined;
163
+ classroomId?: string | undefined;
164
+ teacherUserId?: string | undefined;
165
+ subjectId?: string | undefined;
166
+ }>;
144
167
  export type DayOfWeek = z.infer<typeof dayOfWeekEnum>;
145
168
  export type TeachingSchedule = z.infer<typeof teachingScheduleSchema>;
146
169
  export type CreateTeachingScheduleInput = z.infer<typeof createTeachingScheduleSchema>;
147
170
  export type UpdateTeachingScheduleInput = z.infer<typeof updateTeachingScheduleSchema>;
171
+ export type TeachingScheduleParams = z.infer<typeof teachingScheduleParamsSchema>;
172
+ export type TeachingScheduleListQuery = z.infer<typeof teachingScheduleListQuerySchema>;