@devlider001/washlab-backend 1.0.4 → 1.0.6

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 (78) hide show
  1. package/convex/_generated/api.d.ts +2 -0
  2. package/convex/admin.d.ts +1 -1
  3. package/convex/audit.d.ts +39 -0
  4. package/convex/customers.d.ts +12 -5
  5. package/convex/lib/auth.d.ts +24 -1
  6. package/convex/notifications.d.ts +170 -0
  7. package/convex/schema.d.ts +53 -2
  8. package/dist/convex/admin.d.ts +377 -0
  9. package/dist/convex/admin.d.ts.map +1 -0
  10. package/dist/convex/admin.js +959 -0
  11. package/dist/convex/admin.js.map +1 -0
  12. package/dist/convex/analytics.d.ts +87 -0
  13. package/dist/convex/analytics.d.ts.map +1 -0
  14. package/dist/convex/analytics.js +361 -0
  15. package/dist/convex/analytics.js.map +1 -0
  16. package/dist/convex/attendants.d.ts +140 -0
  17. package/dist/convex/attendants.d.ts.map +1 -0
  18. package/dist/convex/attendants.js +337 -0
  19. package/dist/convex/attendants.js.map +1 -0
  20. package/dist/convex/audit.d.ts +158 -0
  21. package/dist/convex/audit.d.ts.map +1 -0
  22. package/dist/convex/audit.js +184 -0
  23. package/dist/convex/audit.js.map +1 -0
  24. package/dist/convex/clerk.d.ts +53 -0
  25. package/dist/convex/clerk.d.ts.map +1 -0
  26. package/dist/convex/clerk.js +316 -0
  27. package/dist/convex/clerk.js.map +1 -0
  28. package/dist/convex/customers.d.ts +224 -0
  29. package/dist/convex/customers.d.ts.map +1 -0
  30. package/dist/convex/customers.js +504 -0
  31. package/dist/convex/customers.js.map +1 -0
  32. package/dist/convex/http.d.ts +3 -0
  33. package/dist/convex/http.d.ts.map +1 -0
  34. package/dist/convex/http.js +115 -0
  35. package/dist/convex/http.js.map +1 -0
  36. package/dist/convex/lib/audit.d.ts +36 -0
  37. package/dist/convex/lib/audit.d.ts.map +1 -0
  38. package/dist/convex/lib/audit.js +59 -0
  39. package/dist/convex/lib/audit.js.map +1 -0
  40. package/dist/convex/lib/auth.d.ts +96 -0
  41. package/dist/convex/lib/auth.d.ts.map +1 -0
  42. package/dist/convex/lib/auth.js +94 -0
  43. package/dist/convex/lib/auth.js.map +1 -0
  44. package/dist/convex/lib/utils.d.ts +38 -0
  45. package/dist/convex/lib/utils.d.ts.map +1 -0
  46. package/dist/convex/lib/utils.js +71 -0
  47. package/dist/convex/lib/utils.js.map +1 -0
  48. package/dist/convex/loyalty.d.ts +82 -0
  49. package/dist/convex/loyalty.d.ts.map +1 -0
  50. package/dist/convex/loyalty.js +286 -0
  51. package/dist/convex/loyalty.js.map +1 -0
  52. package/dist/convex/orders.d.ts +326 -0
  53. package/dist/convex/orders.d.ts.map +1 -0
  54. package/dist/convex/orders.js +570 -0
  55. package/dist/convex/orders.js.map +1 -0
  56. package/dist/convex/payments.d.ts +134 -0
  57. package/dist/convex/payments.d.ts.map +1 -0
  58. package/dist/convex/payments.js +360 -0
  59. package/dist/convex/payments.js.map +1 -0
  60. package/dist/convex/resources.d.ts +119 -0
  61. package/dist/convex/resources.d.ts.map +1 -0
  62. package/dist/convex/resources.js +283 -0
  63. package/dist/convex/resources.js.map +1 -0
  64. package/dist/convex/schema.d.ts +450 -0
  65. package/dist/convex/schema.d.ts.map +1 -0
  66. package/dist/convex/schema.js +347 -0
  67. package/dist/convex/schema.js.map +1 -0
  68. package/dist/convex/vouchers.d.ts +187 -0
  69. package/dist/convex/vouchers.d.ts.map +1 -0
  70. package/dist/convex/vouchers.js +464 -0
  71. package/dist/convex/vouchers.js.map +1 -0
  72. package/dist/src/index.d.ts +9 -0
  73. package/dist/src/index.d.ts.map +1 -0
  74. package/dist/src/index.js +9 -0
  75. package/dist/src/index.js.map +1 -0
  76. package/package.json +5 -3
  77. package/convex/_generated/api.js +0 -23
  78. package/convex/_generated/server.js +0 -93
@@ -0,0 +1,224 @@
1
+ import { Id } from "./_generated/dataModel";
2
+ /**
3
+ * Customer Functions
4
+ *
5
+ * Handles customer profile management, registration, and lookups.
6
+ * Customers can be guests (walk-in, no account) or registered (with Clerk account).
7
+ */
8
+ /**
9
+ * Get customer by phone number
10
+ * Used by POS for walk-in customer lookup
11
+ */
12
+ export declare const getByPhone: import("convex/server").RegisteredQuery<"public", {
13
+ phoneNumber: string;
14
+ }, Promise<{
15
+ _id: import("convex/values").GenericId<"users">;
16
+ _creationTime: number;
17
+ email?: string | undefined;
18
+ clerkUserId?: string | undefined;
19
+ statusNote?: string | undefined;
20
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
21
+ statusChangedAt?: number | undefined;
22
+ lastLoginAt?: number | undefined;
23
+ preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
24
+ phoneNumber: string;
25
+ name: string;
26
+ isRegistered: boolean;
27
+ isVerified: boolean;
28
+ status: "active" | "blocked" | "suspended" | "restricted";
29
+ createdAt: number;
30
+ isDeleted: boolean;
31
+ } | null>>;
32
+ /**
33
+ * Get current customer profile (from authenticated Clerk session)
34
+ */
35
+ export declare const getProfile: import("convex/server").RegisteredQuery<"public", {}, Promise<{
36
+ orderCount: number;
37
+ completedOrderCount: number;
38
+ _id: import("convex/values").GenericId<"users">;
39
+ _creationTime: number;
40
+ email?: string | undefined;
41
+ clerkUserId?: string | undefined;
42
+ statusNote?: string | undefined;
43
+ statusChangedBy?: import("convex/values").GenericId<"admins"> | undefined;
44
+ statusChangedAt?: number | undefined;
45
+ lastLoginAt?: number | undefined;
46
+ preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
47
+ phoneNumber: string;
48
+ name: string;
49
+ isRegistered: boolean;
50
+ isVerified: boolean;
51
+ status: "active" | "blocked" | "suspended" | "restricted";
52
+ createdAt: number;
53
+ isDeleted: boolean;
54
+ }>>;
55
+ /**
56
+ * Get customer order history - Paginated
57
+ * Supports usePaginatedQuery for infinite scroll
58
+ */
59
+ export declare const getOrders: import("convex/server").RegisteredQuery<"public", {
60
+ cursor?: string | undefined;
61
+ numItems?: number | undefined;
62
+ }, Promise<{
63
+ page: {
64
+ _id: import("convex/values").GenericId<"orders">;
65
+ _creationTime: number;
66
+ createdBy?: import("convex/values").GenericId<"attendants"> | undefined;
67
+ estimatedWeight?: number | undefined;
68
+ actualWeight?: number | undefined;
69
+ itemCount?: number | undefined;
70
+ estimatedLoads?: number | undefined;
71
+ whitesSeparate?: boolean | undefined;
72
+ bagCardNumber?: string | undefined;
73
+ notes?: string | undefined;
74
+ deliveryAddress?: string | undefined;
75
+ deliveryPhoneNumber?: string | undefined;
76
+ deliveryHall?: string | undefined;
77
+ deliveryRoom?: string | undefined;
78
+ paymentMethod?: "mobile_money" | "card" | "cash" | undefined;
79
+ paymentId?: import("convex/values").GenericId<"payments"> | undefined;
80
+ fulfilledBy?: import("convex/values").GenericId<"attendants"> | undefined;
81
+ status: "pending" | "in_progress" | "ready_for_pickup" | "delivered" | "completed" | "cancelled";
82
+ createdAt: number;
83
+ isDeleted: boolean;
84
+ branchId: import("convex/values").GenericId<"branches">;
85
+ deliveryFee: number;
86
+ customerId: import("convex/values").GenericId<"users">;
87
+ customerPhoneNumber: string;
88
+ orderNumber: string;
89
+ orderType: "walk_in" | "online";
90
+ serviceType: "wash_only" | "wash_and_dry" | "dry_only";
91
+ isDelivery: boolean;
92
+ basePrice: number;
93
+ totalPrice: number;
94
+ finalPrice: number;
95
+ paymentStatus: "pending" | "paid" | "failed" | "refunded";
96
+ updatedAt: number;
97
+ statusHistory: {
98
+ notes?: string | undefined;
99
+ status: string;
100
+ changedAt: number;
101
+ changedBy: import("convex/values").GenericId<"attendants">;
102
+ }[];
103
+ }[];
104
+ isDone: boolean;
105
+ continueCursor: string;
106
+ }>>;
107
+ /**
108
+ * Get customer loyalty points balance
109
+ */
110
+ export declare const getLoyaltyPoints: import("convex/server").RegisteredQuery<"public", {}, Promise<{
111
+ points: number;
112
+ totalEarned: number;
113
+ totalRedeemed: number;
114
+ lastEarnedAt?: undefined;
115
+ lastRedeemedAt?: undefined;
116
+ } | {
117
+ points: number;
118
+ totalEarned: number;
119
+ totalRedeemed: number;
120
+ lastEarnedAt: number | undefined;
121
+ lastRedeemedAt: number | undefined;
122
+ }>>;
123
+ /**
124
+ * Create guest customer (walk-in, no Clerk account)
125
+ * Used when creating walk-in orders at POS
126
+ */
127
+ export declare const createGuest: import("convex/server").RegisteredMutation<"public", {
128
+ phoneNumber: string;
129
+ name: string;
130
+ }, Promise<import("convex/values").GenericId<"users">>>;
131
+ /**
132
+ * Register customer (link Clerk account to customer profile)
133
+ * Called after customer signs up via Clerk
134
+ */
135
+ export declare const register: import("convex/server").RegisteredMutation<"public", {
136
+ email?: string | undefined;
137
+ phoneNumber: string;
138
+ name: string;
139
+ }, Promise<Id<"users">>>;
140
+ /**
141
+ * Update customer profile
142
+ */
143
+ export declare const updateProfile: import("convex/server").RegisteredMutation<"public", {
144
+ email?: string | undefined;
145
+ name?: string | undefined;
146
+ preferredBranchId?: import("convex/values").GenericId<"branches"> | undefined;
147
+ }, Promise<import("convex/values").GenericId<"users">>>;
148
+ /**
149
+ * Create test user (DEV ONLY)
150
+ *
151
+ * This mutation allows creating test users in development without requiring
152
+ * Clerk authentication. Useful for testing and development.
153
+ *
154
+ * WARNING: This should only be used in development environments.
155
+ * In production, users should be created via Clerk webhooks or the register mutation.
156
+ */
157
+ export declare const createTestUser: import("convex/server").RegisteredMutation<"public", {
158
+ email?: string | undefined;
159
+ clerkUserId?: string | undefined;
160
+ isRegistered?: boolean | undefined;
161
+ isVerified?: boolean | undefined;
162
+ phoneNumber: string;
163
+ name: string;
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
+ }>>;
224
+ //# sourceMappingURL=customers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../convex/customers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;UAgBrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;GAqBrB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyBpB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;GA0B3B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW;;;uDAiDtB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;wBAgFnB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;uDAiDxB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;;;;;;uDAiGzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;KAmFjB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDrB,CAAC"}