@devlider001/washlab-backend 1.0.4 → 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.
- package/convex/_generated/api.d.ts +2 -0
- package/convex/audit.d.ts +39 -0
- package/convex/notifications.d.ts +170 -0
- package/convex/schema.d.ts +51 -0
- package/dist/convex/admin.d.ts +377 -0
- package/dist/convex/admin.d.ts.map +1 -0
- package/dist/convex/admin.js +959 -0
- package/dist/convex/admin.js.map +1 -0
- package/dist/convex/analytics.d.ts +87 -0
- package/dist/convex/analytics.d.ts.map +1 -0
- package/dist/convex/analytics.js +361 -0
- package/dist/convex/analytics.js.map +1 -0
- package/dist/convex/attendants.d.ts +140 -0
- package/dist/convex/attendants.d.ts.map +1 -0
- package/dist/convex/attendants.js +337 -0
- package/dist/convex/attendants.js.map +1 -0
- package/dist/convex/audit.d.ts +158 -0
- package/dist/convex/audit.d.ts.map +1 -0
- package/dist/convex/audit.js +184 -0
- package/dist/convex/audit.js.map +1 -0
- package/dist/convex/clerk.d.ts +53 -0
- package/dist/convex/clerk.d.ts.map +1 -0
- package/dist/convex/clerk.js +316 -0
- package/dist/convex/clerk.js.map +1 -0
- package/dist/convex/customers.d.ts +224 -0
- package/dist/convex/customers.d.ts.map +1 -0
- package/dist/convex/customers.js +504 -0
- package/dist/convex/customers.js.map +1 -0
- package/dist/convex/http.d.ts +3 -0
- package/dist/convex/http.d.ts.map +1 -0
- package/dist/convex/http.js +115 -0
- package/dist/convex/http.js.map +1 -0
- package/dist/convex/lib/audit.d.ts +36 -0
- package/dist/convex/lib/audit.d.ts.map +1 -0
- package/dist/convex/lib/audit.js +59 -0
- package/dist/convex/lib/audit.js.map +1 -0
- package/dist/convex/lib/auth.d.ts +96 -0
- package/dist/convex/lib/auth.d.ts.map +1 -0
- package/dist/convex/lib/auth.js +94 -0
- package/dist/convex/lib/auth.js.map +1 -0
- package/dist/convex/lib/utils.d.ts +38 -0
- package/dist/convex/lib/utils.d.ts.map +1 -0
- package/dist/convex/lib/utils.js +71 -0
- package/dist/convex/lib/utils.js.map +1 -0
- package/dist/convex/loyalty.d.ts +82 -0
- package/dist/convex/loyalty.d.ts.map +1 -0
- package/dist/convex/loyalty.js +286 -0
- package/dist/convex/loyalty.js.map +1 -0
- package/dist/convex/orders.d.ts +326 -0
- package/dist/convex/orders.d.ts.map +1 -0
- package/dist/convex/orders.js +570 -0
- package/dist/convex/orders.js.map +1 -0
- package/dist/convex/payments.d.ts +134 -0
- package/dist/convex/payments.d.ts.map +1 -0
- package/dist/convex/payments.js +360 -0
- package/dist/convex/payments.js.map +1 -0
- package/dist/convex/resources.d.ts +119 -0
- package/dist/convex/resources.d.ts.map +1 -0
- package/dist/convex/resources.js +283 -0
- package/dist/convex/resources.js.map +1 -0
- package/dist/convex/schema.d.ts +450 -0
- package/dist/convex/schema.d.ts.map +1 -0
- package/dist/convex/schema.js +347 -0
- package/dist/convex/schema.js.map +1 -0
- package/dist/convex/vouchers.d.ts +187 -0
- package/dist/convex/vouchers.d.ts.map +1 -0
- package/dist/convex/vouchers.js +464 -0
- package/dist/convex/vouchers.js.map +1 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/package.json +3 -3
|
@@ -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"}
|