@bizmap/sdk 0.0.31 → 0.0.33

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.
package/dist/main.d.ts CHANGED
@@ -101,6 +101,10 @@ declare const CompanyUser: z.ZodObject<{
101
101
  active: "active";
102
102
  inactive: "inactive";
103
103
  }>;
104
+ availability: z.ZodObject<{
105
+ isAvailable: z.ZodDefault<z.ZodBoolean>;
106
+ lastModified: z.ZodDefault<z.ZodNullable<z.ZodInt>>;
107
+ }, z.core.$strip>;
104
108
  roles: z.ZodPipe<z.ZodArray<z.ZodEnum<{
105
109
  doc: "doc";
106
110
  physAsst: "physAsst";
@@ -108,6 +112,7 @@ declare const CompanyUser: z.ZodObject<{
108
112
  cshr: "cshr";
109
113
  admin: "admin";
110
114
  }>>, z.ZodTransform<("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[], ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[]>>;
115
+ totalAppts: z.ZodDefault<z.ZodInt>;
111
116
  lastActive: z.ZodInt;
112
117
  name: z.ZodRecord<z.ZodEnum<{
113
118
  first: "first";
@@ -144,13 +149,13 @@ declare const CompanyDetails: z.ZodObject<{
144
149
  availableBalance: z.ZodNumber;
145
150
  totalUploads: z.ZodNumber;
146
151
  lastInvoiceNo: z.ZodNullable<z.ZodString>;
147
- lastTktNo: z.ZodNullable<z.ZodNumber>;
152
+ lastTktNo: z.ZodNumber;
148
153
  lastModified: z.ZodNullable<z.ZodInt>;
149
154
  }, z.core.$strip> | z.ZodOptional<z.ZodNullable<z.ZodObject<{
150
155
  availableBalance: z.ZodNumber;
151
156
  totalUploads: z.ZodNumber;
152
157
  lastInvoiceNo: z.ZodNullable<z.ZodString>;
153
- lastTktNo: z.ZodNullable<z.ZodNumber>;
158
+ lastTktNo: z.ZodNumber;
154
159
  lastModified: z.ZodNullable<z.ZodInt>;
155
160
  }, z.core.$strip>>>;
156
161
  preferences: z.ZodObject<{
@@ -255,6 +260,10 @@ declare const CompanyDetails: z.ZodObject<{
255
260
  active: "active";
256
261
  inactive: "inactive";
257
262
  }>;
263
+ availability: z.ZodObject<{
264
+ isAvailable: z.ZodDefault<z.ZodBoolean>;
265
+ lastModified: z.ZodDefault<z.ZodNullable<z.ZodInt>>;
266
+ }, z.core.$strip>;
258
267
  roles: z.ZodPipe<z.ZodArray<z.ZodEnum<{
259
268
  doc: "doc";
260
269
  physAsst: "physAsst";
@@ -262,6 +271,7 @@ declare const CompanyDetails: z.ZodObject<{
262
271
  cshr: "cshr";
263
272
  admin: "admin";
264
273
  }>>, z.ZodTransform<("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[], ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[]>>;
274
+ totalAppts: z.ZodDefault<z.ZodInt>;
265
275
  lastActive: z.ZodInt;
266
276
  name: z.ZodRecord<z.ZodEnum<{
267
277
  first: "first";
@@ -279,7 +289,12 @@ declare const CompanyDetails: z.ZodObject<{
279
289
  createdAt: number;
280
290
  uid: string;
281
291
  status: "inviteSent" | "active" | "inactive";
292
+ availability: {
293
+ isAvailable: boolean;
294
+ lastModified: number | null;
295
+ };
282
296
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
297
+ totalAppts: number;
283
298
  lastActive: number;
284
299
  name: Record<"first" | "last", string>;
285
300
  email: string;
@@ -295,7 +310,12 @@ declare const CompanyDetails: z.ZodObject<{
295
310
  createdAt: number;
296
311
  uid: string;
297
312
  status: "inviteSent" | "active" | "inactive";
313
+ availability: {
314
+ isAvailable: boolean;
315
+ lastModified: number | null;
316
+ };
298
317
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
318
+ totalAppts: number;
299
319
  lastActive: number;
300
320
  name: Record<"first" | "last", string>;
301
321
  email: string;
@@ -316,6 +336,10 @@ declare const CompanyDetails: z.ZodObject<{
316
336
  active: "active";
317
337
  inactive: "inactive";
318
338
  }>;
339
+ availability: z.ZodObject<{
340
+ isAvailable: z.ZodDefault<z.ZodBoolean>;
341
+ lastModified: z.ZodDefault<z.ZodNullable<z.ZodInt>>;
342
+ }, z.core.$strip>;
319
343
  roles: z.ZodPipe<z.ZodArray<z.ZodEnum<{
320
344
  doc: "doc";
321
345
  physAsst: "physAsst";
@@ -323,6 +347,7 @@ declare const CompanyDetails: z.ZodObject<{
323
347
  cshr: "cshr";
324
348
  admin: "admin";
325
349
  }>>, z.ZodTransform<("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[], ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[]>>;
350
+ totalAppts: z.ZodDefault<z.ZodInt>;
326
351
  lastActive: z.ZodInt;
327
352
  name: z.ZodRecord<z.ZodEnum<{
328
353
  first: "first";
@@ -340,7 +365,12 @@ declare const CompanyDetails: z.ZodObject<{
340
365
  createdAt: number;
341
366
  uid: string;
342
367
  status: "inviteSent" | "active" | "inactive";
368
+ availability: {
369
+ isAvailable: boolean;
370
+ lastModified: number | null;
371
+ };
343
372
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
373
+ totalAppts: number;
344
374
  lastActive: number;
345
375
  name: Record<"first" | "last", string>;
346
376
  email: string;
@@ -356,7 +386,12 @@ declare const CompanyDetails: z.ZodObject<{
356
386
  createdAt: number;
357
387
  uid: string;
358
388
  status: "inviteSent" | "active" | "inactive";
389
+ availability: {
390
+ isAvailable: boolean;
391
+ lastModified: number | null;
392
+ };
359
393
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
394
+ totalAppts: number;
360
395
  lastActive: number;
361
396
  name: Record<"first" | "last", string>;
362
397
  email: string;
@@ -397,13 +432,13 @@ declare const PartialCompanyDetails: z.ZodObject<{
397
432
  availableBalance: z.ZodNumber;
398
433
  totalUploads: z.ZodNumber;
399
434
  lastInvoiceNo: z.ZodNullable<z.ZodString>;
400
- lastTktNo: z.ZodNullable<z.ZodNumber>;
435
+ lastTktNo: z.ZodNumber;
401
436
  lastModified: z.ZodNullable<z.ZodInt>;
402
437
  }, z.core.$strip> | z.ZodOptional<z.ZodNullable<z.ZodObject<{
403
438
  availableBalance: z.ZodNumber;
404
439
  totalUploads: z.ZodNumber;
405
440
  lastInvoiceNo: z.ZodNullable<z.ZodString>;
406
- lastTktNo: z.ZodNullable<z.ZodNumber>;
441
+ lastTktNo: z.ZodNumber;
407
442
  lastModified: z.ZodNullable<z.ZodInt>;
408
443
  }, z.core.$strip>>>;
409
444
  preferences: z.ZodObject<{
@@ -508,6 +543,10 @@ declare const PartialCompanyDetails: z.ZodObject<{
508
543
  active: "active";
509
544
  inactive: "inactive";
510
545
  }>;
546
+ availability: z.ZodObject<{
547
+ isAvailable: z.ZodDefault<z.ZodBoolean>;
548
+ lastModified: z.ZodDefault<z.ZodNullable<z.ZodInt>>;
549
+ }, z.core.$strip>;
511
550
  roles: z.ZodPipe<z.ZodArray<z.ZodEnum<{
512
551
  doc: "doc";
513
552
  physAsst: "physAsst";
@@ -515,6 +554,7 @@ declare const PartialCompanyDetails: z.ZodObject<{
515
554
  cshr: "cshr";
516
555
  admin: "admin";
517
556
  }>>, z.ZodTransform<("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[], ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[]>>;
557
+ totalAppts: z.ZodDefault<z.ZodInt>;
518
558
  lastActive: z.ZodInt;
519
559
  name: z.ZodRecord<z.ZodEnum<{
520
560
  first: "first";
@@ -532,7 +572,12 @@ declare const PartialCompanyDetails: z.ZodObject<{
532
572
  createdAt: number;
533
573
  uid: string;
534
574
  status: "inviteSent" | "active" | "inactive";
575
+ availability: {
576
+ isAvailable: boolean;
577
+ lastModified: number | null;
578
+ };
535
579
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
580
+ totalAppts: number;
536
581
  lastActive: number;
537
582
  name: Record<"first" | "last", string>;
538
583
  email: string;
@@ -548,7 +593,12 @@ declare const PartialCompanyDetails: z.ZodObject<{
548
593
  createdAt: number;
549
594
  uid: string;
550
595
  status: "inviteSent" | "active" | "inactive";
596
+ availability: {
597
+ isAvailable: boolean;
598
+ lastModified: number | null;
599
+ };
551
600
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
601
+ totalAppts: number;
552
602
  lastActive: number;
553
603
  name: Record<"first" | "last", string>;
554
604
  email: string;
@@ -569,6 +619,10 @@ declare const PartialCompanyDetails: z.ZodObject<{
569
619
  active: "active";
570
620
  inactive: "inactive";
571
621
  }>;
622
+ availability: z.ZodObject<{
623
+ isAvailable: z.ZodDefault<z.ZodBoolean>;
624
+ lastModified: z.ZodDefault<z.ZodNullable<z.ZodInt>>;
625
+ }, z.core.$strip>;
572
626
  roles: z.ZodPipe<z.ZodArray<z.ZodEnum<{
573
627
  doc: "doc";
574
628
  physAsst: "physAsst";
@@ -576,6 +630,7 @@ declare const PartialCompanyDetails: z.ZodObject<{
576
630
  cshr: "cshr";
577
631
  admin: "admin";
578
632
  }>>, z.ZodTransform<("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[], ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[]>>;
633
+ totalAppts: z.ZodDefault<z.ZodInt>;
579
634
  lastActive: z.ZodInt;
580
635
  name: z.ZodRecord<z.ZodEnum<{
581
636
  first: "first";
@@ -593,7 +648,12 @@ declare const PartialCompanyDetails: z.ZodObject<{
593
648
  createdAt: number;
594
649
  uid: string;
595
650
  status: "inviteSent" | "active" | "inactive";
651
+ availability: {
652
+ isAvailable: boolean;
653
+ lastModified: number | null;
654
+ };
596
655
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
656
+ totalAppts: number;
597
657
  lastActive: number;
598
658
  name: Record<"first" | "last", string>;
599
659
  email: string;
@@ -609,7 +669,12 @@ declare const PartialCompanyDetails: z.ZodObject<{
609
669
  createdAt: number;
610
670
  uid: string;
611
671
  status: "inviteSent" | "active" | "inactive";
672
+ availability: {
673
+ isAvailable: boolean;
674
+ lastModified: number | null;
675
+ };
612
676
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
677
+ totalAppts: number;
613
678
  lastActive: number;
614
679
  name: Record<"first" | "last", string>;
615
680
  email: string;
@@ -667,7 +732,12 @@ declare const findConflictingPartners: (...partners: CompanyUser[]) => {
667
732
  createdAt: number;
668
733
  uid: string;
669
734
  status: "inviteSent" | "active" | "inactive";
735
+ availability: {
736
+ isAvailable: boolean;
737
+ lastModified: number | null;
738
+ };
670
739
  roles: ("doc" | "physAsst" | "rcpst" | "cshr" | "admin")[];
740
+ totalAppts: number;
671
741
  lastActive: number;
672
742
  name: Record<"first" | "last", string>;
673
743
  email: string;
package/dist/main.js CHANGED
@@ -96,6 +96,10 @@ var CompanyUser = z4.object({
96
96
  ...UserModel.shape,
97
97
  uid: UuidV7,
98
98
  status: z4.enum(["inviteSent", "active", "inactive"]),
99
+ availability: z4.object({
100
+ isAvailable: z4.boolean().default(true),
101
+ lastModified: Timestamp.nullable().default(null)
102
+ }),
99
103
  roles: z4.array(companyUserRoles).transform((roles) => {
100
104
  const newRoles = [];
101
105
  for (const role of roles) {
@@ -108,8 +112,19 @@ var CompanyUser = z4.object({
108
112
  (role, i) => i === 0 || compatibleRoles.includes(role)
109
113
  );
110
114
  }, "A user is not allowed to have conflicting roles."),
115
+ /** This should reset at the end of every cycle. */
116
+ totalAppts: z4.int().positive().default(0),
111
117
  lastActive: Timestamp,
112
118
  ...TimeLog.shape
119
+ }).superRefine((data, ctx) => {
120
+ if (!data.availability.isAvailable && data.status !== "active") {
121
+ ctx.addIssue('Unavailable users MUST also have the "active" status.');
122
+ }
123
+ if (!data.availability.isAvailable && !data.roles.some((role) => role === "doc" || role === "physAsst")) {
124
+ ctx.addIssue(
125
+ 'Only users with the "doc" or "physAsst" role can be marked as unavailable.'
126
+ );
127
+ }
113
128
  });
114
129
  var CompanyIdentity = z4.object({
115
130
  displayName: z4.string().min(3).max(20),
@@ -139,10 +154,9 @@ var CompanyState = z4.object({
139
154
  * @note This should only be null when the cycle resets
140
155
  */
141
156
  lastInvoiceNo: InvoiceNo.nullable(),
142
- /** A counter for the company's ticket no.
143
- * @note This should only be null when the cycle resets
144
- */
145
- lastTktNo: z4.number().positive().nullable(),
157
+ /** A counter for the company's ticket no. */
158
+ lastTktNo: z4.number().positive(),
159
+ // distAppts: z.record(CompanyUser.shape.uid, z.number().positive().nullable()),
146
160
  lastModified: Timestamp.nullable()
147
161
  });
148
162
  var CompanyPreferences = z4.object({
@@ -200,6 +214,10 @@ var CompanyBillingModel = z4.object({
200
214
  }
201
215
  });
202
216
  var StaffDetails = z4.object({
217
+ /** Doc -> total appointments
218
+ * @note This should be reset at the end of every cycle.
219
+ */
220
+ // totalApptsMap: z.record(CompanyUser.shape.uid, z.number().positive()),
203
221
  members: z4.array(CompanyUser).superRefine((users, ctx) => {
204
222
  const duplicateUids = [];
205
223
  const duplicateEmails = [];
@@ -233,10 +251,7 @@ var StaffDetails = z4.object({
233
251
  *@description A map of doctor `uids` to their assistants `uids` */
234
252
  partnerMap: z4.record(
235
253
  CompanyUser.shape.uid,
236
- z4.array(CompanyUser.shape.uid).min(
237
- 1,
238
- "At least (1) partner, excluding the leader, is required to create a partner group."
239
- ).transform((pUids) => {
254
+ z4.array(CompanyUser.shape.uid).transform((pUids) => {
240
255
  const partners = [];
241
256
  for (const uid of pUids) {
242
257
  if (!uid || typeof uid !== "string") continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bizmap/sdk",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "main": "./dist/main.js",
5
5
  "types": "./dist/main.d.ts",
6
6
  "type": "module",