@devlider001/washlab-backend 1.0.6 → 1.0.8

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.
@@ -12,6 +12,7 @@ import type * as admin from "../admin.js";
12
12
  import type * as analytics from "../analytics.js";
13
13
  import type * as attendants from "../attendants.js";
14
14
  import type * as audit from "../audit.js";
15
+ import type * as branches from "../branches.js";
15
16
  import type * as clerk from "../clerk.js";
16
17
  import type * as customers from "../customers.js";
17
18
  import type * as http from "../http.js";
@@ -36,6 +37,7 @@ declare const fullApi: ApiFromModules<{
36
37
  analytics: typeof analytics;
37
38
  attendants: typeof attendants;
38
39
  audit: typeof audit;
40
+ branches: typeof branches;
39
41
  clerk: typeof clerk;
40
42
  customers: typeof customers;
41
43
  http: typeof http;
@@ -0,0 +1,23 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * Generated `api` utility.
4
+ *
5
+ * THIS CODE IS AUTOMATICALLY GENERATED.
6
+ *
7
+ * To regenerate, run `npx convex dev`.
8
+ * @module
9
+ */
10
+
11
+ import { anyApi, componentsGeneric } from "convex/server";
12
+
13
+ /**
14
+ * A utility for referencing Convex functions in your app's API.
15
+ *
16
+ * Usage:
17
+ * ```js
18
+ * const myFunctionReference = api.myModule.myFunction;
19
+ * ```
20
+ */
21
+ export const api = anyApi;
22
+ export const internal = anyApi;
23
+ export const components = componentsGeneric();
@@ -0,0 +1,93 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * Generated utilities for implementing server-side Convex query and mutation functions.
4
+ *
5
+ * THIS CODE IS AUTOMATICALLY GENERATED.
6
+ *
7
+ * To regenerate, run `npx convex dev`.
8
+ * @module
9
+ */
10
+
11
+ import {
12
+ actionGeneric,
13
+ httpActionGeneric,
14
+ queryGeneric,
15
+ mutationGeneric,
16
+ internalActionGeneric,
17
+ internalMutationGeneric,
18
+ internalQueryGeneric,
19
+ } from "convex/server";
20
+
21
+ /**
22
+ * Define a query in this Convex app's public API.
23
+ *
24
+ * This function will be allowed to read your Convex database and will be accessible from the client.
25
+ *
26
+ * @param func - The query function. It receives a {@link QueryCtx} as its first argument.
27
+ * @returns The wrapped query. Include this as an `export` to name it and make it accessible.
28
+ */
29
+ export const query = queryGeneric;
30
+
31
+ /**
32
+ * Define a query that is only accessible from other Convex functions (but not from the client).
33
+ *
34
+ * This function will be allowed to read from your Convex database. It will not be accessible from the client.
35
+ *
36
+ * @param func - The query function. It receives a {@link QueryCtx} as its first argument.
37
+ * @returns The wrapped query. Include this as an `export` to name it and make it accessible.
38
+ */
39
+ export const internalQuery = internalQueryGeneric;
40
+
41
+ /**
42
+ * Define a mutation in this Convex app's public API.
43
+ *
44
+ * This function will be allowed to modify your Convex database and will be accessible from the client.
45
+ *
46
+ * @param func - The mutation function. It receives a {@link MutationCtx} as its first argument.
47
+ * @returns The wrapped mutation. Include this as an `export` to name it and make it accessible.
48
+ */
49
+ export const mutation = mutationGeneric;
50
+
51
+ /**
52
+ * Define a mutation that is only accessible from other Convex functions (but not from the client).
53
+ *
54
+ * This function will be allowed to modify your Convex database. It will not be accessible from the client.
55
+ *
56
+ * @param func - The mutation function. It receives a {@link MutationCtx} as its first argument.
57
+ * @returns The wrapped mutation. Include this as an `export` to name it and make it accessible.
58
+ */
59
+ export const internalMutation = internalMutationGeneric;
60
+
61
+ /**
62
+ * Define an action in this Convex app's public API.
63
+ *
64
+ * An action is a function which can execute any JavaScript code, including non-deterministic
65
+ * code and code with side-effects, like calling third-party services.
66
+ * They can be run in Convex's JavaScript environment or in Node.js using the "use node" directive.
67
+ * They can interact with the database indirectly by calling queries and mutations using the {@link ActionCtx}.
68
+ *
69
+ * @param func - The action. It receives an {@link ActionCtx} as its first argument.
70
+ * @returns The wrapped action. Include this as an `export` to name it and make it accessible.
71
+ */
72
+ export const action = actionGeneric;
73
+
74
+ /**
75
+ * Define an action that is only accessible from other Convex functions (but not from the client).
76
+ *
77
+ * @param func - The function. It receives an {@link ActionCtx} as its first argument.
78
+ * @returns The wrapped function. Include this as an `export` to name it and make it accessible.
79
+ */
80
+ export const internalAction = internalActionGeneric;
81
+
82
+ /**
83
+ * Define an HTTP action.
84
+ *
85
+ * The wrapped function will be used to respond to HTTP requests received
86
+ * by a Convex deployment if the requests matches the path and method where
87
+ * this action is routed. Be sure to route your httpAction in `convex/http.js`.
88
+ *
89
+ * @param func - The function. It receives an {@link ActionCtx} as its first argument
90
+ * and a Fetch API `Request` object as its second.
91
+ * @returns The wrapped function. Import this function from `convex/http.js` and route it to hook it up.
92
+ */
93
+ export const httpAction = httpActionGeneric;
package/convex/admin.d.ts CHANGED
@@ -25,8 +25,14 @@ export declare const getCurrentUser: import("convex/server").RegisteredQuery<"pu
25
25
  */
26
26
  export declare const getBranches: import("convex/server").RegisteredQuery<"public", {
27
27
  includeInactive?: boolean | undefined;
28
- cursor?: string | undefined;
29
- numItems?: number | undefined;
28
+ paginationOpts: {
29
+ id?: number;
30
+ endCursor?: string | null;
31
+ maximumRowsRead?: number;
32
+ maximumBytesRead?: number;
33
+ numItems: number;
34
+ cursor: string | null;
35
+ };
30
36
  }, Promise<{
31
37
  page: {
32
38
  _id: import("convex/values").GenericId<"branches">;
@@ -99,8 +105,8 @@ export declare const getBranch: import("convex/server").RegisteredQuery<"public"
99
105
  export declare const getAttendants: import("convex/server").RegisteredQuery<"public", {
100
106
  branchId?: import("convex/values").GenericId<"branches"> | undefined;
101
107
  includeInactive?: boolean | undefined;
102
- cursor?: string | undefined;
103
108
  numItems?: number | undefined;
109
+ cursor?: string | undefined;
104
110
  }, Promise<{
105
111
  page: {
106
112
  _id: import("convex/values").GenericId<"attendants">;
@@ -126,15 +132,22 @@ export declare const getAttendants: import("convex/server").RegisteredQuery<"pub
126
132
  export declare const getOrders: import("convex/server").RegisteredQuery<"public", {
127
133
  status?: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled" | undefined;
128
134
  branchId?: import("convex/values").GenericId<"branches"> | undefined;
129
- cursor?: string | undefined;
130
- numItems?: number | undefined;
131
135
  startDate?: number | undefined;
132
136
  endDate?: number | undefined;
137
+ paginationOpts: {
138
+ id?: number;
139
+ endCursor?: string | null;
140
+ maximumRowsRead?: number;
141
+ maximumBytesRead?: number;
142
+ numItems: number;
143
+ cursor: string | null;
144
+ };
133
145
  }, Promise<{
134
146
  page: {
135
147
  _id: import("convex/values").GenericId<"orders">;
136
148
  _creationTime: number;
137
149
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
150
+ customerEmail?: string | undefined;
138
151
  estimatedWeight?: number | undefined;
139
152
  actualWeight?: number | undefined;
140
153
  itemCount?: number | undefined;
@@ -167,9 +180,10 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
167
180
  updatedAt: number;
168
181
  statusHistory: {
169
182
  notes?: string | undefined;
183
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
184
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
170
185
  status: string;
171
186
  changedAt: number;
172
- changedBy: import("convex/values").GenericId<"attendants">;
173
187
  }[];
174
188
  }[];
175
189
  isDone: boolean;
@@ -374,4 +388,79 @@ export declare const createFirstSuperAdmin: import("convex/server").RegisteredMu
374
388
  name: string;
375
389
  clerkUserId: string;
376
390
  }, Promise<import("convex/values").GenericId<"admins">>>;
391
+ /**
392
+ * Admin: Update order status (admin can update any order)
393
+ */
394
+ export declare const updateOrderStatus: import("convex/server").RegisteredMutation<"public", {
395
+ notes?: string | undefined;
396
+ orderId: import("convex/values").GenericId<"orders">;
397
+ newStatus: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
398
+ }, Promise<import("convex/values").GenericId<"orders">>>;
399
+ /**
400
+ * Admin: Delete order (soft delete)
401
+ */
402
+ export declare const deleteOrder: import("convex/server").RegisteredMutation<"public", {
403
+ orderId: import("convex/values").GenericId<"orders">;
404
+ }, Promise<import("convex/values").GenericId<"orders">>>;
405
+ /**
406
+ * Admin: Get order details (includes full order information with customer and branch)
407
+ */
408
+ export declare const getOrderDetails: import("convex/server").RegisteredQuery<"public", {
409
+ orderId: import("convex/values").GenericId<"orders">;
410
+ }, Promise<{
411
+ customer: {
412
+ _id: import("convex/values").GenericId<"users">;
413
+ name: string;
414
+ phoneNumber: string;
415
+ email: string | undefined;
416
+ } | null;
417
+ branch: {
418
+ _id: import("convex/values").GenericId<"branches">;
419
+ name: string;
420
+ code: string;
421
+ address: string;
422
+ city: string;
423
+ } | null;
424
+ _id: import("convex/values").GenericId<"orders">;
425
+ _creationTime: number;
426
+ createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
427
+ customerEmail?: string | undefined;
428
+ estimatedWeight?: number | undefined;
429
+ actualWeight?: number | undefined;
430
+ itemCount?: number | undefined;
431
+ estimatedLoads?: number | undefined;
432
+ whitesSeparate?: boolean | undefined;
433
+ bagCardNumber?: string | undefined;
434
+ notes?: string | undefined;
435
+ deliveryAddress?: string | undefined;
436
+ deliveryPhoneNumber?: string | undefined;
437
+ deliveryHall?: string | undefined;
438
+ deliveryRoom?: string | undefined;
439
+ paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
440
+ paymentId?: import("convex/values").GenericId<"payments"> | undefined;
441
+ fulfilledBy?: import("convex/values").GenericId<"attendants"> | undefined;
442
+ status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
443
+ createdAt: number;
444
+ isDeleted: boolean;
445
+ branchId: import("convex/values").GenericId<"branches">;
446
+ deliveryFee: number;
447
+ customerId: import("convex/values").GenericId<"users">;
448
+ customerPhoneNumber: string;
449
+ orderNumber: string;
450
+ orderType: "walk_in" | "online";
451
+ serviceType: "wash_only" | "wash_and_dry" | "dry_only";
452
+ isDelivery: boolean;
453
+ basePrice: number;
454
+ totalPrice: number;
455
+ finalPrice: number;
456
+ paymentStatus: "pending" | "paid" | "failed" | "refunded";
457
+ updatedAt: number;
458
+ statusHistory: {
459
+ notes?: string | undefined;
460
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
461
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
462
+ status: string;
463
+ changedAt: number;
464
+ }[];
465
+ } | null>>;
377
466
  //# sourceMappingURL=admin.d.ts.map
@@ -65,8 +65,8 @@ export declare const getActiveSession: import("convex/server").RegisteredQuery<"
65
65
  */
66
66
  export declare const getAttendanceHistory: import("convex/server").RegisteredQuery<"public", {
67
67
  branchId?: import("convex/values").GenericId<"branches"> | undefined;
68
- cursor?: string | undefined;
69
68
  numItems?: number | undefined;
69
+ cursor?: string | undefined;
70
70
  }, Promise<{
71
71
  page: {
72
72
  _id: import("convex/values").GenericId<"attendanceLogs">;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Branch Functions
3
+ *
4
+ * Handles branch information queries for customers and public access.
5
+ */
6
+ /**
7
+ * Get all active branches
8
+ * Public query - can be used by customers and guests
9
+ */
10
+ export declare const getActive: import("convex/server").RegisteredQuery<"public", {}, Promise<{
11
+ _id: import("convex/values").GenericId<"branches">;
12
+ name: string;
13
+ code: string;
14
+ address: string;
15
+ city: string;
16
+ country: string;
17
+ phoneNumber: string;
18
+ email: string | undefined;
19
+ pricingPerKg: number;
20
+ deliveryFee: number;
21
+ isActive: boolean;
22
+ createdAt: number;
23
+ }[]>>;
24
+ //# sourceMappingURL=branches.d.ts.map
@@ -59,8 +59,14 @@ export declare const getProfile: import("convex/server").RegisteredQuery<"public
59
59
  * Returns empty results if customer not found
60
60
  */
61
61
  export declare const getOrders: import("convex/server").RegisteredQuery<"public", {
62
- cursor?: string | undefined;
63
- numItems?: number | undefined;
62
+ paginationOpts: {
63
+ id?: number;
64
+ endCursor?: string | null;
65
+ maximumRowsRead?: number;
66
+ maximumBytesRead?: number;
67
+ numItems: number;
68
+ cursor: string | null;
69
+ };
64
70
  }, Promise<{
65
71
  page: never[];
66
72
  isDone: boolean;
@@ -70,6 +76,7 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
70
76
  _id: import("convex/values").GenericId<"orders">;
71
77
  _creationTime: number;
72
78
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
79
+ customerEmail?: string | undefined;
73
80
  estimatedWeight?: number | undefined;
74
81
  actualWeight?: number | undefined;
75
82
  itemCount?: number | undefined;
@@ -102,9 +109,10 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
102
109
  updatedAt: number;
103
110
  statusHistory: {
104
111
  notes?: string | undefined;
112
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
113
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
105
114
  status: string;
106
115
  changedAt: number;
107
- changedBy: import("convex/values").GenericId<"attendants">;
108
116
  }[];
109
117
  }[];
110
118
  isDone: boolean;
@@ -148,6 +156,7 @@ export declare const register: import("convex/server").RegisteredMutation<"publi
148
156
  * Update customer profile
149
157
  */
150
158
  export declare const updateProfile: import("convex/server").RegisteredMutation<"public", {
159
+ phoneNumber?: string | undefined;
151
160
  email?: string | undefined;
152
161
  name?: string | undefined;
153
162
  preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
@@ -15,15 +15,18 @@ export declare const getBalance: import("convex/server").RegisteredQuery<"public
15
15
  lastRedeemedAt: number | undefined;
16
16
  }>>;
17
17
  /**
18
- * Get loyalty transaction history
19
- */
20
- /**
21
- * Get loyalty transactions - Paginated
18
+ * Get loyalty transaction history - Paginated
22
19
  * Supports usePaginatedQuery for infinite scroll
23
20
  */
24
21
  export declare const getTransactions: import("convex/server").RegisteredQuery<"public", {
25
- cursor?: string | undefined;
26
- numItems?: number | undefined;
22
+ paginationOpts: {
23
+ id?: number;
24
+ endCursor?: string | null;
25
+ maximumRowsRead?: number;
26
+ maximumBytesRead?: number;
27
+ numItems: number;
28
+ cursor: string | null;
29
+ };
27
30
  }, Promise<{
28
31
  page: {
29
32
  _id: import("convex/values").GenericId<"loyaltyTransactions">;
@@ -41,6 +44,117 @@ export declare const getTransactions: import("convex/server").RegisteredQuery<"p
41
44
  isDone: boolean;
42
45
  continueCursor: string;
43
46
  }>>;
47
+ /**
48
+ * Admin: Get all loyalty points balances (paginated)
49
+ */
50
+ export declare const getAllLoyaltyPoints: import("convex/server").RegisteredQuery<"public", {
51
+ searchQuery?: string | undefined;
52
+ paginationOpts: {
53
+ id?: number;
54
+ endCursor?: string | null;
55
+ maximumRowsRead?: number;
56
+ maximumBytesRead?: number;
57
+ numItems: number;
58
+ cursor: string | null;
59
+ };
60
+ }, Promise<{
61
+ page: never[];
62
+ isDone: boolean;
63
+ continueCursor: null;
64
+ } | {
65
+ page: {
66
+ customer: {
67
+ _id: import("convex/values").GenericId<"users">;
68
+ name: string;
69
+ phoneNumber: string;
70
+ email: string | undefined;
71
+ } | null;
72
+ _id: import("convex/values").GenericId<"loyaltyPoints">;
73
+ _creationTime: number;
74
+ lastEarnedAt?: number | undefined;
75
+ lastRedeemedAt?: number | undefined;
76
+ isDeleted: boolean;
77
+ customerId: import("convex/values").GenericId<"users">;
78
+ points: number;
79
+ totalEarned: number;
80
+ totalRedeemed: number;
81
+ }[];
82
+ isDone: boolean;
83
+ continueCursor: string;
84
+ }>>;
85
+ /**
86
+ * Admin: Get all loyalty transactions (paginated)
87
+ */
88
+ export declare const getAllTransactions: import("convex/server").RegisteredQuery<"public", {
89
+ type?: "earned" | "redeemed" | "adjusted" | undefined;
90
+ customerId?: import("convex/values").GenericId<"users"> | undefined;
91
+ paginationOpts: {
92
+ id?: number;
93
+ endCursor?: string | null;
94
+ maximumRowsRead?: number;
95
+ maximumBytesRead?: number;
96
+ numItems: number;
97
+ cursor: string | null;
98
+ };
99
+ }, Promise<{
100
+ page: {
101
+ customer: {
102
+ _id: import("convex/values").GenericId<"users">;
103
+ name: string;
104
+ phoneNumber: string;
105
+ email: string | undefined;
106
+ } | null;
107
+ order: {
108
+ _id: import("convex/values").GenericId<"orders">;
109
+ orderNumber: string;
110
+ } | null;
111
+ adjustedBy: {
112
+ _id: import("convex/values").GenericId<"admins">;
113
+ name: string;
114
+ email: string;
115
+ } | null;
116
+ _id: import("convex/values").GenericId<"loyaltyTransactions">;
117
+ _creationTime: number;
118
+ createdBy?: import("convex/values").GenericId<"admins"> | undefined;
119
+ orderId?: import("convex/values").GenericId<"orders"> | undefined;
120
+ description?: string | undefined;
121
+ type: "earned" | "redeemed" | "expired" | "adjusted";
122
+ createdAt: number;
123
+ isDeleted: boolean;
124
+ customerId: import("convex/values").GenericId<"users">;
125
+ points: number;
126
+ balanceAfter: number;
127
+ }[];
128
+ isDone: boolean;
129
+ continueCursor: string;
130
+ }>>;
131
+ /**
132
+ * Admin: Get loyalty points for a specific customer
133
+ */
134
+ export declare const getCustomerLoyaltyPoints: import("convex/server").RegisteredQuery<"public", {
135
+ customerId: import("convex/values").GenericId<"users">;
136
+ }, Promise<{
137
+ points: number;
138
+ totalEarned: number;
139
+ totalRedeemed: number;
140
+ lastEarnedAt: undefined;
141
+ lastRedeemedAt: undefined;
142
+ customerId: import("convex/values").GenericId<"users">;
143
+ customer?: undefined;
144
+ } | {
145
+ points: number;
146
+ totalEarned: number;
147
+ totalRedeemed: number;
148
+ lastEarnedAt: number | undefined;
149
+ lastRedeemedAt: number | undefined;
150
+ customerId: import("convex/values").GenericId<"users">;
151
+ customer: {
152
+ _id: import("convex/values").GenericId<"users">;
153
+ name: string;
154
+ phoneNumber: string;
155
+ email: string | undefined;
156
+ } | null;
157
+ }>>;
44
158
  /**
45
159
  * Earn loyalty points (internal - called when order is completed)
46
160
  */
@@ -48,7 +162,17 @@ export declare const earnPoints: import("convex/server").RegisteredMutation<"int
48
162
  customerId: import("convex/values").GenericId<"users">;
49
163
  orderId: import("convex/values").GenericId<"orders">;
50
164
  points: number;
51
- }, Promise<void>>;
165
+ }, Promise<{
166
+ skipped: boolean;
167
+ reason: string;
168
+ success?: undefined;
169
+ pointsAwarded?: undefined;
170
+ } | {
171
+ success: boolean;
172
+ pointsAwarded: number;
173
+ skipped?: undefined;
174
+ reason?: undefined;
175
+ }>>;
52
176
  /**
53
177
  * Redeem loyalty points for free wash
54
178
  */
@@ -1,58 +1,39 @@
1
+ import { Id } from "./_generated/dataModel";
1
2
  /**
2
- * Notification Functions
3
- *
4
- * Handles creating, reading, and managing system notifications
5
- * for customers, attendants, and admins.
6
- */
7
- /**
8
- * Get notifications for current user - Paginated
9
- * Supports usePaginatedQuery for infinite scroll
3
+ * Get notifications for current user
4
+ * Returns empty array if user not found
10
5
  */
11
6
  export declare const getMyNotifications: import("convex/server").RegisteredQuery<"public", {
12
7
  type?: "info" | "success" | "warning" | "error" | "order" | "payment" | "system" | undefined;
13
8
  isRead?: boolean | undefined;
14
- paginationOpts: {
15
- id?: number;
16
- endCursor?: string | null;
17
- maximumRowsRead?: number;
18
- maximumBytesRead?: number;
19
- numItems: number;
20
- cursor: string | null;
21
- };
9
+ limit?: number | undefined;
22
10
  }, Promise<{
23
- page: never[];
24
- isDone: boolean;
25
- continueCursor: null;
26
- } | {
27
- page: {
28
- _id: import("convex/values").GenericId<"notifications">;
29
- _creationTime: number;
30
- branchId?: import("convex/values").GenericId<"branches"> | undefined;
31
- entityType?: string | undefined;
32
- entityId?: string | undefined;
33
- actionUrl?: string | undefined;
34
- actionLabel?: string | undefined;
35
- readAt?: number | undefined;
36
- senderId?: string | undefined;
37
- senderType?: "admin" | "attendant" | "system" | undefined;
38
- expiresAt?: number | undefined;
39
- scheduledFor?: number | undefined;
40
- sentAt?: number | undefined;
41
- type: "info" | "success" | "warning" | "error" | "order" | "payment" | "system";
42
- createdAt: number;
43
- isDeleted: boolean;
44
- recipientId: string;
45
- recipientType: "admin" | "customer" | "attendant" | "all";
46
- title: string;
47
- message: string;
48
- priority: "low" | "normal" | "high" | "urgent";
49
- isRead: boolean;
50
- }[];
51
- isDone: boolean;
52
- continueCursor: string;
53
- }>>;
11
+ _id: Id<"notifications">;
12
+ _creationTime: number;
13
+ recipientId: string;
14
+ recipientType: string;
15
+ title: string;
16
+ message: string;
17
+ type: string;
18
+ priority: string;
19
+ isRead: boolean;
20
+ createdAt: number;
21
+ isDeleted: boolean;
22
+ readAt?: number;
23
+ actionUrl?: string;
24
+ actionLabel?: string;
25
+ entityType?: string;
26
+ entityId?: string;
27
+ senderId?: string;
28
+ senderType?: string;
29
+ branchId?: Id<"branches">;
30
+ expiresAt?: number;
31
+ scheduledFor?: number;
32
+ sentAt?: number;
33
+ }[]>>;
54
34
  /**
55
35
  * Get unread notification count for current user
36
+ * Returns 0 if user not found
56
37
  */
57
38
  export declare const getUnreadCount: import("convex/server").RegisteredQuery<"public", {}, Promise<number>>;
58
39
  /**
@@ -142,6 +123,29 @@ export declare const createNotification: import("convex/server").RegisteredMutat
142
123
  notificationId: import("convex/values").GenericId<"notifications">;
143
124
  success: boolean;
144
125
  }>>;
126
+ /**
127
+ * Internal mutation to create notification (can be called from other mutations)
128
+ */
129
+ export declare const internalCreateNotification: import("convex/server").RegisteredMutation<"internal", {
130
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
131
+ entityType?: string | undefined;
132
+ entityId?: string | undefined;
133
+ recipientId?: string | undefined;
134
+ actionUrl?: string | undefined;
135
+ actionLabel?: string | undefined;
136
+ priority?: "low" | "normal" | "high" | "urgent" | undefined;
137
+ senderId?: string | undefined;
138
+ senderType?: "admin" | "attendant" | "system" | undefined;
139
+ expiresAt?: number | undefined;
140
+ scheduledFor?: number | undefined;
141
+ type: "info" | "success" | "warning" | "error" | "order" | "payment" | "system";
142
+ recipientType: "admin" | "customer" | "attendant" | "all";
143
+ title: string;
144
+ message: string;
145
+ }, Promise<{
146
+ notificationId: import("convex/values").GenericId<"notifications">;
147
+ success: boolean;
148
+ }>>;
145
149
  /**
146
150
  * Delete notification (admin only - hard delete)
147
151
  */
@@ -12,6 +12,7 @@ export declare const getByOrderNumber: import("convex/server").RegisteredQuery<"
12
12
  _id: import("convex/values").GenericId<"orders">;
13
13
  _creationTime: number;
14
14
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
15
+ customerEmail?: string | undefined;
15
16
  estimatedWeight?: number | undefined;
16
17
  actualWeight?: number | undefined;
17
18
  itemCount?: number | undefined;
@@ -44,9 +45,10 @@ export declare const getByOrderNumber: import("convex/server").RegisteredQuery<"
44
45
  updatedAt: number;
45
46
  statusHistory: {
46
47
  notes?: string | undefined;
48
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
49
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
47
50
  status: string;
48
51
  changedAt: number;
49
- changedBy: import("convex/values").GenericId<"attendants">;
50
52
  }[];
51
53
  } | null>>;
52
54
  /**
@@ -59,6 +61,7 @@ export declare const getByCustomer: import("convex/server").RegisteredQuery<"pub
59
61
  _id: import("convex/values").GenericId<"orders">;
60
62
  _creationTime: number;
61
63
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
64
+ customerEmail?: string | undefined;
62
65
  estimatedWeight?: number | undefined;
63
66
  actualWeight?: number | undefined;
64
67
  itemCount?: number | undefined;
@@ -91,9 +94,10 @@ export declare const getByCustomer: import("convex/server").RegisteredQuery<"pub
91
94
  updatedAt: number;
92
95
  statusHistory: {
93
96
  notes?: string | undefined;
97
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
98
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
94
99
  status: string;
95
100
  changedAt: number;
96
- changedBy: import("convex/values").GenericId<"attendants">;
97
101
  }[];
98
102
  }[]>>;
99
103
  /**
@@ -107,6 +111,7 @@ export declare const getByBranch: import("convex/server").RegisteredQuery<"publi
107
111
  _id: import("convex/values").GenericId<"orders">;
108
112
  _creationTime: number;
109
113
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
114
+ customerEmail?: string | undefined;
110
115
  estimatedWeight?: number | undefined;
111
116
  actualWeight?: number | undefined;
112
117
  itemCount?: number | undefined;
@@ -139,9 +144,10 @@ export declare const getByBranch: import("convex/server").RegisteredQuery<"publi
139
144
  updatedAt: number;
140
145
  statusHistory: {
141
146
  notes?: string | undefined;
147
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
148
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
142
149
  status: string;
143
150
  changedAt: number;
144
- changedBy: import("convex/values").GenericId<"attendants">;
145
151
  }[];
146
152
  }[]>>;
147
153
  /**
@@ -153,6 +159,7 @@ export declare const getPending: import("convex/server").RegisteredQuery<"public
153
159
  _id: import("convex/values").GenericId<"orders">;
154
160
  _creationTime: number;
155
161
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
162
+ customerEmail?: string | undefined;
156
163
  estimatedWeight?: number | undefined;
157
164
  actualWeight?: number | undefined;
158
165
  itemCount?: number | undefined;
@@ -185,15 +192,17 @@ export declare const getPending: import("convex/server").RegisteredQuery<"public
185
192
  updatedAt: number;
186
193
  statusHistory: {
187
194
  notes?: string | undefined;
195
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
196
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
188
197
  status: string;
189
198
  changedAt: number;
190
- changedBy: import("convex/values").GenericId<"attendants">;
191
199
  }[];
192
200
  }[]>>;
193
201
  /**
194
202
  * Create walk-in order (attendant creates at POS)
195
203
  */
196
204
  export declare const createWalkIn: import("convex/server").RegisteredMutation<"public", {
205
+ customerEmail?: string | undefined;
197
206
  bagCardNumber?: string | undefined;
198
207
  notes?: string | undefined;
199
208
  deliveryAddress?: string | undefined;
@@ -220,6 +229,7 @@ export declare const createOnline: import("convex/server").RegisteredMutation<"p
220
229
  deliveryRoom?: string | undefined;
221
230
  branchId: import("convex/values").GenericId<"branches">;
222
231
  customerPhoneNumber: string;
232
+ customerEmail: string;
223
233
  serviceType: "wash_only" | "wash_and_dry" | "dry_only";
224
234
  estimatedWeight: number;
225
235
  itemCount: number;
@@ -286,6 +296,7 @@ export declare const getByDateRange: import("convex/server").RegisteredQuery<"pu
286
296
  _id: import("convex/values").GenericId<"orders">;
287
297
  _creationTime: number;
288
298
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
299
+ customerEmail?: string | undefined;
289
300
  estimatedWeight?: number | undefined;
290
301
  actualWeight?: number | undefined;
291
302
  itemCount?: number | undefined;
@@ -318,9 +329,10 @@ export declare const getByDateRange: import("convex/server").RegisteredQuery<"pu
318
329
  updatedAt: number;
319
330
  statusHistory: {
320
331
  notes?: string | undefined;
332
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
333
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
321
334
  status: string;
322
335
  changedAt: number;
323
- changedBy: import("convex/values").GenericId<"attendants">;
324
336
  }[];
325
337
  }[]>>;
326
338
  //# sourceMappingURL=orders.d.ts.map
@@ -25,26 +25,81 @@ export declare const getByOrder: import("convex/server").RegisteredQuery<"public
25
25
  currency: string;
26
26
  } | null>>;
27
27
  /**
28
- * Get payment history by customer
28
+ * Get payment history by customer - Paginated
29
+ * Supports usePaginatedQuery for infinite scroll
29
30
  */
30
31
  export declare const getByCustomer: import("convex/server").RegisteredQuery<"public", {
31
- limit?: number | undefined;
32
+ paginationOpts: {
33
+ id?: number;
34
+ endCursor?: string | null;
35
+ maximumRowsRead?: number;
36
+ maximumBytesRead?: number;
37
+ numItems: number;
38
+ cursor: string | null;
39
+ };
32
40
  }, Promise<{
33
- _id: import("convex/values").GenericId<"payments">;
34
- _creationTime: number;
35
- gatewayTransactionId?: string | undefined;
36
- gatewayResponse?: string | undefined;
37
- completedAt?: number | undefined;
38
- processedBy?: import("convex/values").GenericId<"attendants"> | undefined;
39
- status: "pending" | "completed" | "failed" | "refunded" | "processing";
40
- createdAt: number;
41
- isDeleted: boolean;
42
- customerId: import("convex/values").GenericId<"users">;
43
- paymentMethod: "mobile_money" | "card" | "cash";
44
- orderId: import("convex/values").GenericId<"orders">;
45
- amount: number;
46
- currency: string;
47
- }[]>>;
41
+ page: {
42
+ order: {
43
+ _id: import("convex/values").GenericId<"orders">;
44
+ _creationTime: number;
45
+ createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
46
+ customerEmail?: string | undefined;
47
+ estimatedWeight?: number | undefined;
48
+ actualWeight?: number | undefined;
49
+ itemCount?: number | undefined;
50
+ estimatedLoads?: number | undefined;
51
+ whitesSeparate?: boolean | undefined;
52
+ bagCardNumber?: string | undefined;
53
+ notes?: string | undefined;
54
+ deliveryAddress?: string | undefined;
55
+ deliveryPhoneNumber?: string | undefined;
56
+ deliveryHall?: string | undefined;
57
+ deliveryRoom?: string | undefined;
58
+ paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
59
+ paymentId?: import("convex/values").GenericId<"payments"> | undefined;
60
+ fulfilledBy?: import("convex/values").GenericId<"attendants"> | undefined;
61
+ status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
62
+ createdAt: number;
63
+ isDeleted: boolean;
64
+ branchId: import("convex/values").GenericId<"branches">;
65
+ deliveryFee: number;
66
+ customerId: import("convex/values").GenericId<"users">;
67
+ customerPhoneNumber: string;
68
+ orderNumber: string;
69
+ orderType: "walk_in" | "online";
70
+ serviceType: "wash_only" | "wash_and_dry" | "dry_only";
71
+ isDelivery: boolean;
72
+ basePrice: number;
73
+ totalPrice: number;
74
+ finalPrice: number;
75
+ paymentStatus: "pending" | "paid" | "failed" | "refunded";
76
+ updatedAt: number;
77
+ statusHistory: {
78
+ notes?: string | undefined;
79
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
80
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
81
+ status: string;
82
+ changedAt: number;
83
+ }[];
84
+ } | null;
85
+ _id: import("convex/values").GenericId<"payments">;
86
+ _creationTime: number;
87
+ gatewayTransactionId?: string | undefined;
88
+ gatewayResponse?: string | undefined;
89
+ completedAt?: number | undefined;
90
+ processedBy?: import("convex/values").GenericId<"attendants"> | undefined;
91
+ status: "pending" | "completed" | "failed" | "refunded" | "processing";
92
+ createdAt: number;
93
+ isDeleted: boolean;
94
+ customerId: import("convex/values").GenericId<"users">;
95
+ paymentMethod: "mobile_money" | "card" | "cash";
96
+ orderId: import("convex/values").GenericId<"orders">;
97
+ amount: number;
98
+ currency: string;
99
+ }[];
100
+ isDone: boolean;
101
+ continueCursor: string;
102
+ }>>;
48
103
  /**
49
104
  * Create payment record
50
105
  */
@@ -91,14 +146,99 @@ export declare const refund: import("convex/server").RegisteredMutation<"public"
91
146
  * Supports usePaginatedQuery for infinite scroll
92
147
  */
93
148
  export declare const getTransactionHistory: import("convex/server").RegisteredQuery<"public", {
149
+ status?: "pending" | "completed" | "failed" | "refunded" | "processing" | undefined;
94
150
  branchId?: import("convex/values").GenericId<"branches"> | undefined;
95
151
  paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
96
- cursor?: string | undefined;
97
- numItems?: number | undefined;
98
152
  startDate?: number | undefined;
99
153
  endDate?: number | undefined;
154
+ paginationOpts: {
155
+ id?: number;
156
+ endCursor?: string | null;
157
+ maximumRowsRead?: number;
158
+ maximumBytesRead?: number;
159
+ numItems: number;
160
+ cursor: string | null;
161
+ };
100
162
  }, Promise<{
101
163
  page: {
164
+ order: {
165
+ _id: import("convex/values").GenericId<"orders">;
166
+ _creationTime: number;
167
+ createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
168
+ customerEmail?: string | undefined;
169
+ estimatedWeight?: number | undefined;
170
+ actualWeight?: number | undefined;
171
+ itemCount?: number | undefined;
172
+ estimatedLoads?: number | undefined;
173
+ whitesSeparate?: boolean | undefined;
174
+ bagCardNumber?: string | undefined;
175
+ notes?: string | undefined;
176
+ deliveryAddress?: string | undefined;
177
+ deliveryPhoneNumber?: string | undefined;
178
+ deliveryHall?: string | undefined;
179
+ deliveryRoom?: string | undefined;
180
+ paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
181
+ paymentId?: import("convex/values").GenericId<"payments"> | undefined;
182
+ fulfilledBy?: import("convex/values").GenericId<"attendants"> | undefined;
183
+ status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
184
+ createdAt: number;
185
+ isDeleted: boolean;
186
+ branchId: import("convex/values").GenericId<"branches">;
187
+ deliveryFee: number;
188
+ customerId: import("convex/values").GenericId<"users">;
189
+ customerPhoneNumber: string;
190
+ orderNumber: string;
191
+ orderType: "walk_in" | "online";
192
+ serviceType: "wash_only" | "wash_and_dry" | "dry_only";
193
+ isDelivery: boolean;
194
+ basePrice: number;
195
+ totalPrice: number;
196
+ finalPrice: number;
197
+ paymentStatus: "pending" | "paid" | "failed" | "refunded";
198
+ updatedAt: number;
199
+ statusHistory: {
200
+ notes?: string | undefined;
201
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
202
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
203
+ status: string;
204
+ changedAt: number;
205
+ }[];
206
+ } | null;
207
+ customer: {
208
+ _id: import("convex/values").GenericId<"users">;
209
+ _creationTime: number;
210
+ email?: string | undefined;
211
+ clerkUserId?: string | undefined;
212
+ status?: "active" | "blocked" | "suspended" | "restricted" | undefined;
213
+ statusNote?: string | undefined;
214
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
215
+ statusChangedAt?: number | undefined;
216
+ lastLoginAt?: number | undefined;
217
+ preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
218
+ phoneNumber: string;
219
+ name: string;
220
+ isRegistered: boolean;
221
+ isVerified: boolean;
222
+ createdAt: number;
223
+ isDeleted: boolean;
224
+ } | null;
225
+ branch: {
226
+ _id: import("convex/values").GenericId<"branches">;
227
+ _creationTime: number;
228
+ email?: string | undefined;
229
+ phoneNumber: string;
230
+ name: string;
231
+ createdAt: number;
232
+ isDeleted: boolean;
233
+ isActive: boolean;
234
+ code: string;
235
+ address: string;
236
+ city: string;
237
+ country: string;
238
+ pricingPerKg: number;
239
+ deliveryFee: number;
240
+ createdBy: import("convex/values").GenericId<"admins">;
241
+ } | null;
102
242
  _id: import("convex/values").GenericId<"payments">;
103
243
  _creationTime: number;
104
244
  gatewayTransactionId?: string | undefined;
@@ -124,6 +124,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
124
124
  }, {}, {}>;
125
125
  orders: import("convex/server").TableDefinition<import("convex/values").VObject<{
126
126
  createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
127
+ customerEmail?: string | undefined;
127
128
  estimatedWeight?: number | undefined;
128
129
  actualWeight?: number | undefined;
129
130
  itemCount?: number | undefined;
@@ -156,13 +157,15 @@ declare const _default: import("convex/server").SchemaDefinition<{
156
157
  updatedAt: number;
157
158
  statusHistory: {
158
159
  notes?: string | undefined;
160
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
161
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
159
162
  status: string;
160
163
  changedAt: number;
161
- changedBy: import("convex/values").GenericId<"attendants">;
162
164
  }[];
163
165
  }, {
164
166
  customerId: import("convex/values").VId<import("convex/values").GenericId<"users">, "required">;
165
167
  customerPhoneNumber: import("convex/values").VString<string, "required">;
168
+ customerEmail: import("convex/values").VString<string | undefined, "optional">;
166
169
  branchId: import("convex/values").VId<import("convex/values").GenericId<"branches">, "required">;
167
170
  orderNumber: import("convex/values").VString<string, "required">;
168
171
  orderType: import("convex/values").VUnion<"walk_in" | "online", [import("convex/values").VLiteral<"walk_in", "required">, import("convex/values").VLiteral<"online", "required">], "required", never>;
@@ -193,26 +196,30 @@ declare const _default: import("convex/server").SchemaDefinition<{
193
196
  fulfilledBy: import("convex/values").VId<import("convex/values").GenericId<"attendants"> | undefined, "optional">;
194
197
  statusHistory: import("convex/values").VArray<{
195
198
  notes?: string | undefined;
199
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
200
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
196
201
  status: string;
197
202
  changedAt: number;
198
- changedBy: import("convex/values").GenericId<"attendants">;
199
203
  }[], import("convex/values").VObject<{
200
204
  notes?: string | undefined;
205
+ changedBy?: import("convex/values").GenericId<"attendants"> | undefined;
206
+ changedByAdmin?: import("convex/values").GenericId<"admins"> | undefined;
201
207
  status: string;
202
208
  changedAt: number;
203
- changedBy: import("convex/values").GenericId<"attendants">;
204
209
  }, {
205
210
  status: import("convex/values").VString<string, "required">;
206
211
  changedAt: import("convex/values").VFloat64<number, "required">;
207
- changedBy: import("convex/values").VId<import("convex/values").GenericId<"attendants">, "required">;
212
+ changedBy: import("convex/values").VId<import("convex/values").GenericId<"attendants"> | undefined, "optional">;
213
+ changedByAdmin: import("convex/values").VId<import("convex/values").GenericId<"admins"> | undefined, "optional">;
208
214
  notes: import("convex/values").VString<string | undefined, "optional">;
209
- }, "required", "status" | "notes" | "changedAt" | "changedBy">, "required">;
215
+ }, "required", "status" | "notes" | "changedAt" | "changedBy" | "changedByAdmin">, "required">;
210
216
  isDeleted: import("convex/values").VBoolean<boolean, "required">;
211
- }, "required", "status" | "createdAt" | "isDeleted" | "branchId" | "deliveryFee" | "createdBy" | "customerId" | "customerPhoneNumber" | "orderNumber" | "orderType" | "serviceType" | "estimatedWeight" | "actualWeight" | "itemCount" | "estimatedLoads" | "whitesSeparate" | "bagCardNumber" | "notes" | "isDelivery" | "deliveryAddress" | "deliveryPhoneNumber" | "deliveryHall" | "deliveryRoom" | "basePrice" | "totalPrice" | "finalPrice" | "paymentStatus" | "paymentMethod" | "paymentId" | "updatedAt" | "fulfilledBy" | "statusHistory">, {
217
+ }, "required", "status" | "createdAt" | "isDeleted" | "branchId" | "deliveryFee" | "createdBy" | "customerId" | "customerPhoneNumber" | "customerEmail" | "orderNumber" | "orderType" | "serviceType" | "estimatedWeight" | "actualWeight" | "itemCount" | "estimatedLoads" | "whitesSeparate" | "bagCardNumber" | "notes" | "isDelivery" | "deliveryAddress" | "deliveryPhoneNumber" | "deliveryHall" | "deliveryRoom" | "basePrice" | "totalPrice" | "finalPrice" | "paymentStatus" | "paymentMethod" | "paymentId" | "updatedAt" | "fulfilledBy" | "statusHistory">, {
212
218
  by_customer: ["customerId", "_creationTime"];
213
219
  by_branch: ["branchId", "_creationTime"];
214
220
  by_status: ["status", "_creationTime"];
215
221
  by_phone: ["customerPhoneNumber", "_creationTime"];
222
+ by_email: ["customerEmail", "_creationTime"];
216
223
  by_order_number: ["orderNumber", "_creationTime"];
217
224
  by_created: ["createdAt", "_creationTime"];
218
225
  by_fulfilled_by: ["fulfilledBy", "_creationTime"];
@@ -292,6 +299,7 @@ declare const _default: import("convex/server").SchemaDefinition<{
292
299
  by_customer: ["customerId", "_creationTime"];
293
300
  by_order: ["orderId", "_creationTime"];
294
301
  by_created: ["createdAt", "_creationTime"];
302
+ by_type: ["type", "_creationTime"];
295
303
  }, {}, {}>;
296
304
  attendanceLogs: import("convex/server").TableDefinition<import("convex/values").VObject<{
297
305
  clockOutAt?: number | undefined;
@@ -496,6 +504,21 @@ declare const _default: import("convex/server").SchemaDefinition<{
496
504
  by_branch: ["branchId", "_creationTime"];
497
505
  by_entity: ["entityType", "entityId", "_creationTime"];
498
506
  }, {}, {}>;
507
+ notificationReadStatus: import("convex/server").TableDefinition<import("convex/values").VObject<{
508
+ readAt: number;
509
+ notificationId: import("convex/values").GenericId<"notifications">;
510
+ userId: string;
511
+ userType: "admin" | "customer" | "attendant";
512
+ }, {
513
+ notificationId: import("convex/values").VId<import("convex/values").GenericId<"notifications">, "required">;
514
+ userId: import("convex/values").VString<string, "required">;
515
+ userType: import("convex/values").VUnion<"admin" | "customer" | "attendant", [import("convex/values").VLiteral<"customer", "required">, import("convex/values").VLiteral<"attendant", "required">, import("convex/values").VLiteral<"admin", "required">], "required", never>;
516
+ readAt: import("convex/values").VFloat64<number, "required">;
517
+ }, "required", "readAt" | "notificationId" | "userId" | "userType">, {
518
+ by_notification: ["notificationId", "_creationTime"];
519
+ by_user: ["userId", "userType", "_creationTime"];
520
+ by_notification_user: ["notificationId", "userId", "userType", "_creationTime"];
521
+ }, {}, {}>;
499
522
  }, true>;
500
523
  export default _default;
501
524
  //# sourceMappingURL=schema.d.ts.map
@@ -8,8 +8,8 @@
8
8
  */
9
9
  export declare const getAll: import("convex/server").RegisteredQuery<"public", {
10
10
  includeInactive?: boolean | undefined;
11
- cursor?: string | undefined;
12
11
  numItems?: number | undefined;
12
+ cursor?: string | undefined;
13
13
  }, Promise<{
14
14
  page: {
15
15
  _id: import("convex/values").GenericId<"vouchers">;
@@ -165,8 +165,8 @@ export declare const applyToOrder: import("convex/server").RegisteredMutation<"p
165
165
  */
166
166
  export declare const getUsageHistory: import("convex/server").RegisteredQuery<"public", {
167
167
  voucherId?: import("convex/values").GenericId<"vouchers"> | undefined;
168
- cursor?: string | undefined;
169
168
  numItems?: number | undefined;
169
+ cursor?: string | undefined;
170
170
  }, Promise<{
171
171
  page: {
172
172
  _id: import("convex/values").GenericId<"voucherUsages">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devlider001/washlab-backend",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "Washlab backend - Convex API package for Lider Technology Ltd",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",