@devlider001/washlab-backend 1.0.3 → 1.0.5

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 (83) hide show
  1. package/convex/_generated/api.d.ts +6 -0
  2. package/convex/admin.d.ts +129 -4
  3. package/convex/analytics.d.ts +87 -0
  4. package/convex/attendants.d.ts +40 -0
  5. package/convex/audit.d.ts +39 -0
  6. package/convex/customers.d.ts +69 -1
  7. package/convex/lib/auth.d.ts +4 -0
  8. package/convex/loyalty.d.ts +1 -1
  9. package/convex/notifications.d.ts +170 -0
  10. package/convex/orders.d.ts +80 -4
  11. package/convex/payments.d.ts +47 -2
  12. package/convex/resources.d.ts +31 -0
  13. package/convex/schema.d.ts +141 -9
  14. package/convex/vouchers.d.ts +187 -0
  15. package/dist/convex/admin.d.ts +377 -0
  16. package/dist/convex/admin.d.ts.map +1 -0
  17. package/dist/convex/admin.js +959 -0
  18. package/dist/convex/admin.js.map +1 -0
  19. package/dist/convex/analytics.d.ts +87 -0
  20. package/dist/convex/analytics.d.ts.map +1 -0
  21. package/dist/convex/analytics.js +361 -0
  22. package/dist/convex/analytics.js.map +1 -0
  23. package/dist/convex/attendants.d.ts +140 -0
  24. package/dist/convex/attendants.d.ts.map +1 -0
  25. package/dist/convex/attendants.js +337 -0
  26. package/dist/convex/attendants.js.map +1 -0
  27. package/dist/convex/audit.d.ts +158 -0
  28. package/dist/convex/audit.d.ts.map +1 -0
  29. package/dist/convex/audit.js +184 -0
  30. package/dist/convex/audit.js.map +1 -0
  31. package/dist/convex/clerk.d.ts +53 -0
  32. package/dist/convex/clerk.d.ts.map +1 -0
  33. package/dist/convex/clerk.js +316 -0
  34. package/dist/convex/clerk.js.map +1 -0
  35. package/dist/convex/customers.d.ts +224 -0
  36. package/dist/convex/customers.d.ts.map +1 -0
  37. package/dist/convex/customers.js +504 -0
  38. package/dist/convex/customers.js.map +1 -0
  39. package/dist/convex/http.d.ts +3 -0
  40. package/dist/convex/http.d.ts.map +1 -0
  41. package/dist/convex/http.js +115 -0
  42. package/dist/convex/http.js.map +1 -0
  43. package/dist/convex/lib/audit.d.ts +36 -0
  44. package/dist/convex/lib/audit.d.ts.map +1 -0
  45. package/dist/convex/lib/audit.js +59 -0
  46. package/dist/convex/lib/audit.js.map +1 -0
  47. package/dist/convex/lib/auth.d.ts +96 -0
  48. package/dist/convex/lib/auth.d.ts.map +1 -0
  49. package/dist/convex/lib/auth.js +94 -0
  50. package/dist/convex/lib/auth.js.map +1 -0
  51. package/dist/convex/lib/utils.d.ts +38 -0
  52. package/dist/convex/lib/utils.d.ts.map +1 -0
  53. package/dist/convex/lib/utils.js +71 -0
  54. package/dist/convex/lib/utils.js.map +1 -0
  55. package/dist/convex/loyalty.d.ts +82 -0
  56. package/dist/convex/loyalty.d.ts.map +1 -0
  57. package/dist/convex/loyalty.js +286 -0
  58. package/dist/convex/loyalty.js.map +1 -0
  59. package/dist/convex/orders.d.ts +326 -0
  60. package/dist/convex/orders.d.ts.map +1 -0
  61. package/dist/convex/orders.js +570 -0
  62. package/dist/convex/orders.js.map +1 -0
  63. package/dist/convex/payments.d.ts +134 -0
  64. package/dist/convex/payments.d.ts.map +1 -0
  65. package/dist/convex/payments.js +360 -0
  66. package/dist/convex/payments.js.map +1 -0
  67. package/dist/convex/resources.d.ts +119 -0
  68. package/dist/convex/resources.d.ts.map +1 -0
  69. package/dist/convex/resources.js +283 -0
  70. package/dist/convex/resources.js.map +1 -0
  71. package/dist/convex/schema.d.ts +450 -0
  72. package/dist/convex/schema.d.ts.map +1 -0
  73. package/dist/convex/schema.js +347 -0
  74. package/dist/convex/schema.js.map +1 -0
  75. package/dist/convex/vouchers.d.ts +187 -0
  76. package/dist/convex/vouchers.d.ts.map +1 -0
  77. package/dist/convex/vouchers.js +464 -0
  78. package/dist/convex/vouchers.js.map +1 -0
  79. package/dist/src/index.d.ts +9 -0
  80. package/dist/src/index.d.ts.map +1 -0
  81. package/dist/src/index.js +9 -0
  82. package/dist/src/index.js.map +1 -0
  83. package/package.json +4 -3
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type * as admin from "../admin.js";
12
+ import type * as analytics from "../analytics.js";
12
13
  import type * as attendants from "../attendants.js";
13
14
  import type * as audit from "../audit.js";
14
15
  import type * as clerk from "../clerk.js";
@@ -18,9 +19,11 @@ import type * as lib_audit from "../lib/audit.js";
18
19
  import type * as lib_auth from "../lib/auth.js";
19
20
  import type * as lib_utils from "../lib/utils.js";
20
21
  import type * as loyalty from "../loyalty.js";
22
+ import type * as notifications from "../notifications.js";
21
23
  import type * as orders from "../orders.js";
22
24
  import type * as payments from "../payments.js";
23
25
  import type * as resources from "../resources.js";
26
+ import type * as vouchers from "../vouchers.js";
24
27
 
25
28
  import type {
26
29
  ApiFromModules,
@@ -30,6 +33,7 @@ import type {
30
33
 
31
34
  declare const fullApi: ApiFromModules<{
32
35
  admin: typeof admin;
36
+ analytics: typeof analytics;
33
37
  attendants: typeof attendants;
34
38
  audit: typeof audit;
35
39
  clerk: typeof clerk;
@@ -39,9 +43,11 @@ declare const fullApi: ApiFromModules<{
39
43
  "lib/auth": typeof lib_auth;
40
44
  "lib/utils": typeof lib_utils;
41
45
  loyalty: typeof loyalty;
46
+ notifications: typeof notifications;
42
47
  orders: typeof orders;
43
48
  payments: typeof payments;
44
49
  resources: typeof resources;
50
+ vouchers: typeof vouchers;
45
51
  }>;
46
52
 
47
53
  /**
package/convex/admin.d.ts CHANGED
@@ -37,6 +37,7 @@ export declare const getBranches: import("convex/server").RegisteredQuery<"publi
37
37
  createdAt: number;
38
38
  isDeleted: boolean;
39
39
  isActive: boolean;
40
+ code: string;
40
41
  address: string;
41
42
  city: string;
42
43
  country: string;
@@ -47,6 +48,50 @@ export declare const getBranches: import("convex/server").RegisteredQuery<"publi
47
48
  isDone: boolean;
48
49
  continueCursor: string;
49
50
  }>>;
51
+ /**
52
+ * Get branch by code
53
+ */
54
+ export declare const getBranchByCode: import("convex/server").RegisteredQuery<"public", {
55
+ code: string;
56
+ }, Promise<{
57
+ _id: import("convex/values").GenericId<"branches">;
58
+ _creationTime: number;
59
+ email?: string | undefined;
60
+ phoneNumber: string;
61
+ name: string;
62
+ createdAt: number;
63
+ isDeleted: boolean;
64
+ isActive: boolean;
65
+ code: string;
66
+ address: string;
67
+ city: string;
68
+ country: string;
69
+ pricingPerKg: number;
70
+ deliveryFee: number;
71
+ createdBy: import("convex/values").GenericId<"admins">;
72
+ } | null>>;
73
+ /**
74
+ * Get single branch by ID
75
+ */
76
+ export declare const getBranch: import("convex/server").RegisteredQuery<"public", {
77
+ branchId: import("convex/values").GenericId<"branches">;
78
+ }, Promise<{
79
+ _id: import("convex/values").GenericId<"branches">;
80
+ _creationTime: number;
81
+ email?: string | undefined;
82
+ phoneNumber: string;
83
+ name: string;
84
+ createdAt: number;
85
+ isDeleted: boolean;
86
+ isActive: boolean;
87
+ code: string;
88
+ address: string;
89
+ city: string;
90
+ country: string;
91
+ pricingPerKg: number;
92
+ deliveryFee: number;
93
+ createdBy: import("convex/values").GenericId<"admins">;
94
+ } | null>>;
50
95
  /**
51
96
  * Get all attendants - Paginated
52
97
  * Supports usePaginatedQuery for infinite scroll
@@ -79,8 +124,8 @@ export declare const getAttendants: import("convex/server").RegisteredQuery<"pub
79
124
  * Supports usePaginatedQuery for infinite scroll
80
125
  */
81
126
  export declare const getOrders: import("convex/server").RegisteredQuery<"public", {
82
- branchId?: import("convex/values").GenericId<"branches"> | undefined;
83
127
  status?: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled" | undefined;
128
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
84
129
  cursor?: string | undefined;
85
130
  numItems?: number | undefined;
86
131
  startDate?: number | undefined;
@@ -95,6 +140,7 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
95
140
  itemCount?: number | undefined;
96
141
  estimatedLoads?: number | undefined;
97
142
  whitesSeparate?: boolean | undefined;
143
+ bagCardNumber?: string | undefined;
98
144
  notes?: string | undefined;
99
145
  deliveryAddress?: string | undefined;
100
146
  deliveryPhoneNumber?: string | undefined;
@@ -103,6 +149,7 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
103
149
  paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
104
150
  paymentId?: import("convex/values").GenericId<"payments"> | undefined;
105
151
  fulfilledBy?: import("convex/values").GenericId<"attendants"> | undefined;
152
+ status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
106
153
  createdAt: number;
107
154
  isDeleted: boolean;
108
155
  branchId: import("convex/values").GenericId<"branches">;
@@ -116,7 +163,6 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
116
163
  basePrice: number;
117
164
  totalPrice: number;
118
165
  finalPrice: number;
119
- status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
120
166
  paymentStatus: "pending" | "paid" | "failed" | "refunded";
121
167
  updatedAt: number;
122
168
  statusHistory: {
@@ -158,27 +204,73 @@ export declare const getAnalytics: import("convex/server").RegisteredQuery<"publ
158
204
  * Supports usePaginatedQuery for infinite scroll
159
205
  */
160
206
  export declare const getCustomers: import("convex/server").RegisteredQuery<"public", {
207
+ isRegistered?: boolean | undefined;
208
+ status?: "active" | "blocked" | "suspended" | "restricted" | undefined;
161
209
  search?: string | undefined;
162
- cursor?: string | undefined;
163
- numItems?: number | undefined;
210
+ paginationOpts: {
211
+ id?: number;
212
+ endCursor?: string | null;
213
+ maximumRowsRead?: number;
214
+ maximumBytesRead?: number;
215
+ numItems: number;
216
+ cursor: string | null;
217
+ };
164
218
  }, Promise<{
165
219
  page: {
220
+ orderCount: number;
221
+ completedOrderCount: number;
222
+ totalSpent: number;
223
+ lastOrderDate: number;
224
+ lastOrderNumber: string;
166
225
  _id: import("convex/values").GenericId<"users">;
167
226
  _creationTime: number;
168
227
  email?: string | undefined;
169
228
  clerkUserId?: string | undefined;
229
+ statusNote?: string | undefined;
230
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
231
+ statusChangedAt?: number | undefined;
170
232
  lastLoginAt?: number | undefined;
171
233
  preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
172
234
  phoneNumber: string;
173
235
  name: string;
174
236
  isRegistered: boolean;
175
237
  isVerified: boolean;
238
+ status: "active" | "blocked" | "suspended" | "restricted";
176
239
  createdAt: number;
177
240
  isDeleted: boolean;
178
241
  }[];
179
242
  isDone: boolean;
180
243
  continueCursor: string;
181
244
  }>>;
245
+ /**
246
+ * Get customer statistics/aggregations
247
+ */
248
+ export declare const getCustomerStats: import("convex/server").RegisteredQuery<"public", {}, Promise<{
249
+ totalCustomers: number;
250
+ registeredCustomers: number;
251
+ walkInCustomers: number;
252
+ activeCustomers: number;
253
+ blockedCustomers: number;
254
+ suspendedCustomers: number;
255
+ restrictedCustomers: number;
256
+ verifiedCustomers: number;
257
+ customersWithActiveOrders: number;
258
+ totalRevenue: number;
259
+ }>>;
260
+ /**
261
+ * Change customer status (with required note)
262
+ */
263
+ export declare const changeCustomerStatus: import("convex/server").RegisteredMutation<"public", {
264
+ status: "active" | "blocked" | "suspended" | "restricted";
265
+ customerId: import("convex/values").GenericId<"users">;
266
+ note: string;
267
+ }, Promise<import("convex/values").GenericId<"users">>>;
268
+ /**
269
+ * Delete a customer (soft delete)
270
+ */
271
+ export declare const deleteCustomer: import("convex/server").RegisteredMutation<"public", {
272
+ customerId: import("convex/values").GenericId<"users">;
273
+ }, Promise<import("convex/values").GenericId<"users">>>;
182
274
  /**
183
275
  * Create new branch
184
276
  */
@@ -186,6 +278,7 @@ export declare const createBranch: import("convex/server").RegisteredMutation<"p
186
278
  email?: string | undefined;
187
279
  phoneNumber: string;
188
280
  name: string;
281
+ code: string;
189
282
  address: string;
190
283
  city: string;
191
284
  country: string;
@@ -200,6 +293,7 @@ export declare const updateBranch: import("convex/server").RegisteredMutation<"p
200
293
  email?: string | undefined;
201
294
  name?: string | undefined;
202
295
  isActive?: boolean | undefined;
296
+ code?: string | undefined;
203
297
  address?: string | undefined;
204
298
  city?: string | undefined;
205
299
  country?: string | undefined;
@@ -207,6 +301,21 @@ export declare const updateBranch: import("convex/server").RegisteredMutation<"p
207
301
  deliveryFee?: number | undefined;
208
302
  branchId: import("convex/values").GenericId<"branches">;
209
303
  }, Promise<import("convex/values").GenericId<"branches">>>;
304
+ /**
305
+ * Toggle branch active status (enable/disable)
306
+ */
307
+ export declare const toggleBranchStatus: import("convex/server").RegisteredMutation<"public", {
308
+ branchId: import("convex/values").GenericId<"branches">;
309
+ }, Promise<{
310
+ branchId: import("convex/values").GenericId<"branches">;
311
+ isActive: boolean;
312
+ }>>;
313
+ /**
314
+ * Delete branch (soft delete)
315
+ */
316
+ export declare const deleteBranch: import("convex/server").RegisteredMutation<"public", {
317
+ branchId: import("convex/values").GenericId<"branches">;
318
+ }, Promise<import("convex/values").GenericId<"branches">>>;
210
319
  /**
211
320
  * Create attendant account
212
321
  * Note: Clerk user must be created separately, then link clerkUserId
@@ -238,6 +347,12 @@ export declare const assignAttendantToBranch: import("convex/server").Registered
238
347
  branchId: import("convex/values").GenericId<"branches">;
239
348
  attendantId: import("convex/values").GenericId<"attendants">;
240
349
  }, Promise<import("convex/values").GenericId<"attendants">>>;
350
+ /**
351
+ * Delete attendant (soft delete)
352
+ */
353
+ export declare const deleteAttendant: import("convex/server").RegisteredMutation<"public", {
354
+ attendantId: import("convex/values").GenericId<"attendants">;
355
+ }, Promise<import("convex/values").GenericId<"attendants">>>;
241
356
  /**
242
357
  * Create admin account
243
358
  * Only super admins can create other admins
@@ -249,4 +364,14 @@ export declare const createAdmin: import("convex/server").RegisteredMutation<"pu
249
364
  clerkUserId: string;
250
365
  role: "super_admin" | "admin";
251
366
  }, Promise<import("convex/values").GenericId<"admins">>>;
367
+ /**
368
+ * Create the first super admin (one-time setup)
369
+ * This function can only be used when no super admins exist in the database
370
+ * After the first super admin is created, use createAdmin instead
371
+ */
372
+ export declare const createFirstSuperAdmin: import("convex/server").RegisteredMutation<"public", {
373
+ email: string;
374
+ name: string;
375
+ clerkUserId: string;
376
+ }, Promise<import("convex/values").GenericId<"admins">>>;
252
377
  //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1,87 @@
1
+ import { Id } from "./_generated/dataModel";
2
+ /**
3
+ * Analytics Functions
4
+ *
5
+ * Comprehensive analytics and aggregations for dashboard, reports, and insights.
6
+ */
7
+ /**
8
+ * Get dashboard overview statistics
9
+ */
10
+ export declare const getDashboardStats: import("convex/server").RegisteredQuery<"public", {
11
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
12
+ startDate?: number | undefined;
13
+ endDate?: number | undefined;
14
+ }, Promise<{
15
+ totalOrders: number;
16
+ totalRevenue: number;
17
+ completedOrders: number;
18
+ pendingOrders: number;
19
+ walkInOrders: number;
20
+ onlineOrders: number;
21
+ averageOrderValue: number;
22
+ ordersByStatus: Record<string, number>;
23
+ ordersByDay: Record<string, number>;
24
+ revenueByDay: Record<string, number>;
25
+ ordersByServiceType: Record<string, number>;
26
+ ordersByPaymentMethod: Record<string, number>;
27
+ dateRange: {
28
+ start: number;
29
+ end: number;
30
+ };
31
+ }>>;
32
+ /**
33
+ * Get today's statistics
34
+ */
35
+ export declare const getTodayStats: import("convex/server").RegisteredQuery<"public", {
36
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
37
+ }, Promise<{
38
+ totalOrders: number;
39
+ totalRevenue: number;
40
+ completedOrders: number;
41
+ pendingOrders: number;
42
+ walkInOrders: number;
43
+ onlineOrders: number;
44
+ }>>;
45
+ /**
46
+ * Get top customers by order count
47
+ */
48
+ export declare const getTopCustomers: import("convex/server").RegisteredQuery<"public", {
49
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
50
+ startDate?: number | undefined;
51
+ endDate?: number | undefined;
52
+ limit?: number | undefined;
53
+ }, Promise<{
54
+ customerId: Id<"users">;
55
+ name: string;
56
+ phoneNumber: string;
57
+ orderCount: number;
58
+ totalRevenue: number;
59
+ averageOrderValue: number;
60
+ }[]>>;
61
+ /**
62
+ * Get revenue trends (daily/weekly/monthly)
63
+ */
64
+ export declare const getRevenueTrends: import("convex/server").RegisteredQuery<"public", {
65
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
66
+ days?: number | undefined;
67
+ period: "daily" | "weekly" | "monthly";
68
+ }, Promise<{
69
+ period: string;
70
+ revenue: number;
71
+ orders: number;
72
+ }[]>>;
73
+ /**
74
+ * Get branch performance comparison
75
+ */
76
+ export declare const getBranchPerformance: import("convex/server").RegisteredQuery<"public", {
77
+ startDate?: number | undefined;
78
+ endDate?: number | undefined;
79
+ }, Promise<{
80
+ branchId: import("convex/values").GenericId<"branches">;
81
+ branchName: string;
82
+ totalOrders: number;
83
+ totalRevenue: number;
84
+ completedOrders: number;
85
+ averageOrderValue: number;
86
+ }[]>>;
87
+ //# sourceMappingURL=analytics.d.ts.map
@@ -97,4 +97,44 @@ export declare const clockIn: import("convex/server").RegisteredMutation<"public
97
97
  export declare const clockOut: import("convex/server").RegisteredMutation<"public", {
98
98
  attendanceLogId?: import("convex/values").GenericId<"attendanceLogs"> | undefined;
99
99
  }, Promise<import("convex/values").GenericId<"attendanceLogs">>>;
100
+ /**
101
+ * Get attendance statistics for a branch
102
+ */
103
+ export declare const getBranchAttendanceStats: import("convex/server").RegisteredQuery<"public", {
104
+ date?: string | undefined;
105
+ branchId: import("convex/values").GenericId<"branches">;
106
+ }, Promise<{
107
+ date: string;
108
+ branchId: import("convex/values").GenericId<"branches">;
109
+ clockIns: number;
110
+ clockOuts: number;
111
+ activeSessions: number;
112
+ uniqueAttendants: number;
113
+ totalHoursWorked: number;
114
+ averageHoursPerAttendant: number;
115
+ }>>;
116
+ /**
117
+ * Get attendance summary for date range
118
+ */
119
+ export declare const getAttendanceSummary: import("convex/server").RegisteredQuery<"public", {
120
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
121
+ startDate?: number | undefined;
122
+ endDate?: number | undefined;
123
+ }, Promise<{
124
+ totalSessions: number;
125
+ completedSessions: number;
126
+ activeSessions: number;
127
+ uniqueAttendants: number;
128
+ totalHoursWorked: number;
129
+ averageHoursPerSession: number;
130
+ attendanceByDay: Record<string, {
131
+ clockIns: number;
132
+ clockOuts: number;
133
+ hours: number;
134
+ }>;
135
+ dateRange: {
136
+ start: number;
137
+ end: number;
138
+ };
139
+ }>>;
100
140
  //# sourceMappingURL=attendants.d.ts.map
package/convex/audit.d.ts CHANGED
@@ -122,4 +122,43 @@ export declare const getByTimeRange: import("convex/server").RegisteredQuery<"pu
122
122
  entityType: string;
123
123
  timestamp: number;
124
124
  }[]>>;
125
+ /**
126
+ * Get all audit logs with filters - Paginated
127
+ * Supports usePaginatedQuery for infinite scroll
128
+ */
129
+ export declare const getAll: import("convex/server").RegisteredQuery<"public", {
130
+ actorType?: "admin" | "customer" | "attendant" | undefined;
131
+ action?: string | undefined;
132
+ entityType?: string | undefined;
133
+ startTimestamp?: number | undefined;
134
+ endTimestamp?: number | undefined;
135
+ paginationOpts: {
136
+ id?: number;
137
+ endCursor?: string | null;
138
+ maximumRowsRead?: number;
139
+ maximumBytesRead?: number;
140
+ numItems: number;
141
+ cursor: string | null;
142
+ };
143
+ }, Promise<{
144
+ page: {
145
+ _id: import("convex/values").GenericId<"auditLogs">;
146
+ _creationTime: number;
147
+ branchId?: import("convex/values").GenericId<"branches"> | undefined;
148
+ deviceId?: string | undefined;
149
+ entityId?: string | undefined;
150
+ ipAddress?: string | undefined;
151
+ details?: string | undefined;
152
+ oldValue?: string | undefined;
153
+ newValue?: string | undefined;
154
+ actorId: string;
155
+ actorType: "admin" | "customer" | "attendant";
156
+ actorRole: string;
157
+ action: string;
158
+ entityType: string;
159
+ timestamp: number;
160
+ }[];
161
+ isDone: boolean;
162
+ continueCursor: string;
163
+ }>>;
125
164
  //# sourceMappingURL=audit.d.ts.map
@@ -16,12 +16,16 @@ export declare const getByPhone: import("convex/server").RegisteredQuery<"public
16
16
  _creationTime: number;
17
17
  email?: string | undefined;
18
18
  clerkUserId?: string | undefined;
19
+ statusNote?: string | undefined;
20
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
21
+ statusChangedAt?: number | undefined;
19
22
  lastLoginAt?: number | undefined;
20
23
  preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
21
24
  phoneNumber: string;
22
25
  name: string;
23
26
  isRegistered: boolean;
24
27
  isVerified: boolean;
28
+ status: "active" | "blocked" | "suspended" | "restricted";
25
29
  createdAt: number;
26
30
  isDeleted: boolean;
27
31
  } | null>>;
@@ -35,12 +39,16 @@ export declare const getProfile: import("convex/server").RegisteredQuery<"public
35
39
  _creationTime: number;
36
40
  email?: string | undefined;
37
41
  clerkUserId?: string | undefined;
42
+ statusNote?: string | undefined;
43
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
44
+ statusChangedAt?: number | undefined;
38
45
  lastLoginAt?: number | undefined;
39
46
  preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
40
47
  phoneNumber: string;
41
48
  name: string;
42
49
  isRegistered: boolean;
43
50
  isVerified: boolean;
51
+ status: "active" | "blocked" | "suspended" | "restricted";
44
52
  createdAt: number;
45
53
  isDeleted: boolean;
46
54
  }>>;
@@ -61,6 +69,7 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
61
69
  itemCount?: number | undefined;
62
70
  estimatedLoads?: number | undefined;
63
71
  whitesSeparate?: boolean | undefined;
72
+ bagCardNumber?: string | undefined;
64
73
  notes?: string | undefined;
65
74
  deliveryAddress?: string | undefined;
66
75
  deliveryPhoneNumber?: string | undefined;
@@ -69,6 +78,7 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
69
78
  paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
70
79
  paymentId?: import("convex/values").GenericId<"payments"> | undefined;
71
80
  fulfilledBy?: import("convex/values").GenericId<"attendants"> | undefined;
81
+ status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
72
82
  createdAt: number;
73
83
  isDeleted: boolean;
74
84
  branchId: import("convex/values").GenericId<"branches">;
@@ -82,7 +92,6 @@ export declare const getOrders: import("convex/server").RegisteredQuery<"public"
82
92
  basePrice: number;
83
93
  totalPrice: number;
84
94
  finalPrice: number;
85
- status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
86
95
  paymentStatus: "pending" | "paid" | "failed" | "refunded";
87
96
  updatedAt: number;
88
97
  statusHistory: {
@@ -153,4 +162,63 @@ export declare const createTestUser: import("convex/server").RegisteredMutation<
153
162
  phoneNumber: string;
154
163
  name: string;
155
164
  }, Promise<import("convex/values").GenericId<"users">>>;
165
+ /**
166
+ * Search customers by name or phone number
167
+ * Used by POS for customer lookup
168
+ */
169
+ export declare const search: import("convex/server").RegisteredQuery<"public", {
170
+ limit?: number | undefined;
171
+ query: string;
172
+ }, Promise<{
173
+ orderCount: number;
174
+ completedOrderCount: number;
175
+ totalSpent: number;
176
+ lastOrderDate: number;
177
+ _id: import("convex/values").GenericId<"users">;
178
+ _creationTime: number;
179
+ email?: string | undefined;
180
+ clerkUserId?: string | undefined;
181
+ statusNote?: string | undefined;
182
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
183
+ statusChangedAt?: number | undefined;
184
+ lastLoginAt?: number | undefined;
185
+ preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
186
+ phoneNumber: string;
187
+ name: string;
188
+ isRegistered: boolean;
189
+ isVerified: boolean;
190
+ status: "active" | "blocked" | "suspended" | "restricted";
191
+ createdAt: number;
192
+ isDeleted: boolean;
193
+ }[]>>;
194
+ /**
195
+ * Get customer details with full order history
196
+ */
197
+ export declare const getDetails: import("convex/server").RegisteredQuery<"public", {
198
+ customerId: import("convex/values").GenericId<"users">;
199
+ }, Promise<{
200
+ orderCount: number;
201
+ completedOrderCount: number;
202
+ totalSpent: number;
203
+ averageOrderValue: number;
204
+ loyaltyPoints: number;
205
+ lastOrderDate: number;
206
+ lastOrderNumber: string;
207
+ _id: import("convex/values").GenericId<"users">;
208
+ _creationTime: number;
209
+ email?: string | undefined;
210
+ clerkUserId?: string | undefined;
211
+ statusNote?: string | undefined;
212
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
213
+ statusChangedAt?: number | undefined;
214
+ lastLoginAt?: number | undefined;
215
+ preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
216
+ phoneNumber: string;
217
+ name: string;
218
+ isRegistered: boolean;
219
+ isVerified: boolean;
220
+ status: "active" | "blocked" | "suspended" | "restricted";
221
+ createdAt: number;
222
+ isDeleted: boolean;
223
+ }>>;
156
224
  //# sourceMappingURL=customers.d.ts.map
@@ -14,12 +14,16 @@ export declare function getCurrentCustomer(ctx: QueryCtx | MutationCtx): Promise
14
14
  _creationTime: number;
15
15
  email?: string | undefined;
16
16
  clerkUserId?: string | undefined;
17
+ statusNote?: string | undefined;
18
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
19
+ statusChangedAt?: number | undefined;
17
20
  lastLoginAt?: number | undefined;
18
21
  preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
19
22
  phoneNumber: string;
20
23
  name: string;
21
24
  isRegistered: boolean;
22
25
  isVerified: boolean;
26
+ status: "active" | "blocked" | "suspended" | "restricted";
23
27
  createdAt: number;
24
28
  isDeleted: boolean;
25
29
  }>;
@@ -31,9 +31,9 @@ export declare const getTransactions: import("convex/server").RegisteredQuery<"p
31
31
  createdBy?: import("convex/values").GenericId<"admins"> | undefined;
32
32
  orderId?: import("convex/values").GenericId<"orders"> | undefined;
33
33
  description?: string | undefined;
34
+ type: "earned" | "redeemed" | "expired" | "adjusted";
34
35
  createdAt: number;
35
36
  isDeleted: boolean;
36
- type: "earned" | "redeemed" | "expired" | "adjusted";
37
37
  customerId: import("convex/values").GenericId<"users">;
38
38
  points: number;
39
39
  balanceAfter: number;