@viridial/shared 1.0.2

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 (48) hide show
  1. package/README.md +114 -0
  2. package/USER-MODULE.md +268 -0
  3. package/dist/api/auth.service.d.ts +35 -0
  4. package/dist/api/auth.service.d.ts.map +1 -0
  5. package/dist/api/auth.service.js +63 -0
  6. package/dist/api/http.client.d.ts +19 -0
  7. package/dist/api/http.client.d.ts.map +1 -0
  8. package/dist/api/http.client.js +97 -0
  9. package/dist/api/property.service.d.ts +31 -0
  10. package/dist/api/property.service.d.ts.map +1 -0
  11. package/dist/api/property.service.js +47 -0
  12. package/dist/api/user.service.d.ts +86 -0
  13. package/dist/api/user.service.d.ts.map +1 -0
  14. package/dist/api/user.service.js +145 -0
  15. package/dist/composables/useAuth.d.ts +21 -0
  16. package/dist/composables/useAuth.d.ts.map +1 -0
  17. package/dist/composables/useAuth.js +43 -0
  18. package/dist/composables/useUser.d.ts +173 -0
  19. package/dist/composables/useUser.d.ts.map +1 -0
  20. package/dist/composables/useUser.js +132 -0
  21. package/dist/constants/api.constants.d.ts +32 -0
  22. package/dist/constants/api.constants.d.ts.map +1 -0
  23. package/dist/constants/api.constants.js +35 -0
  24. package/dist/index.d.ts +19 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +20 -0
  27. package/dist/stores/auth.store.d.ts +75 -0
  28. package/dist/stores/auth.store.d.ts.map +1 -0
  29. package/dist/stores/auth.store.js +71 -0
  30. package/dist/stores/user.store.d.ts +748 -0
  31. package/dist/stores/user.store.d.ts.map +1 -0
  32. package/dist/stores/user.store.js +264 -0
  33. package/dist/types/api.types.d.ts +27 -0
  34. package/dist/types/api.types.d.ts.map +1 -0
  35. package/dist/types/api.types.js +4 -0
  36. package/dist/types/auth.types.d.ts +38 -0
  37. package/dist/types/auth.types.d.ts.map +1 -0
  38. package/dist/types/auth.types.js +4 -0
  39. package/dist/types/property.types.d.ts +66 -0
  40. package/dist/types/property.types.d.ts.map +1 -0
  41. package/dist/types/property.types.js +20 -0
  42. package/dist/types/user.types.d.ts +103 -0
  43. package/dist/types/user.types.d.ts.map +1 -0
  44. package/dist/types/user.types.js +21 -0
  45. package/dist/utils/token.utils.d.ts +30 -0
  46. package/dist/utils/token.utils.d.ts.map +1 -0
  47. package/dist/utils/token.utils.js +56 -0
  48. package/package.json +96 -0
@@ -0,0 +1,748 @@
1
+ import type { User, UserCreate, UserUpdate, UserSearchParams, UserProfile, UserStats } from '../types/user.types';
2
+ import { UserStatus, UserRole } from '../types/user.types';
3
+ /**
4
+ * Store pour la gestion des utilisateurs SaaS
5
+ */
6
+ export declare const useUserStore: import("pinia").StoreDefinition<"user", Pick<{
7
+ users: import("vue").Ref<{
8
+ id: number;
9
+ email: string;
10
+ name: string;
11
+ firstName?: string | undefined;
12
+ lastName?: string | undefined;
13
+ phone?: string | undefined;
14
+ avatar?: string | undefined;
15
+ status: UserStatus;
16
+ roles: UserRole[];
17
+ organizationId?: number | undefined;
18
+ organizationName?: string | undefined;
19
+ createdAt: string;
20
+ updatedAt: string;
21
+ lastLoginAt?: string | undefined;
22
+ emailVerified: boolean;
23
+ metadata?: Record<string, any> | undefined;
24
+ }[], User[] | {
25
+ id: number;
26
+ email: string;
27
+ name: string;
28
+ firstName?: string | undefined;
29
+ lastName?: string | undefined;
30
+ phone?: string | undefined;
31
+ avatar?: string | undefined;
32
+ status: UserStatus;
33
+ roles: UserRole[];
34
+ organizationId?: number | undefined;
35
+ organizationName?: string | undefined;
36
+ createdAt: string;
37
+ updatedAt: string;
38
+ lastLoginAt?: string | undefined;
39
+ emailVerified: boolean;
40
+ metadata?: Record<string, any> | undefined;
41
+ }[]>;
42
+ currentUser: import("vue").Ref<{
43
+ preferences?: {
44
+ language: string;
45
+ timezone: string;
46
+ theme: "light" | "dark" | "auto";
47
+ emailNotifications: boolean;
48
+ } | undefined;
49
+ notifications?: {
50
+ email: boolean;
51
+ push: boolean;
52
+ sms: boolean;
53
+ marketing: boolean;
54
+ } | undefined;
55
+ id: number;
56
+ email: string;
57
+ name: string;
58
+ firstName?: string | undefined;
59
+ lastName?: string | undefined;
60
+ phone?: string | undefined;
61
+ avatar?: string | undefined;
62
+ status: UserStatus;
63
+ roles: UserRole[];
64
+ organizationId?: number | undefined;
65
+ organizationName?: string | undefined;
66
+ createdAt: string;
67
+ updatedAt: string;
68
+ lastLoginAt?: string | undefined;
69
+ emailVerified: boolean;
70
+ metadata?: Record<string, any> | undefined;
71
+ } | null, UserProfile | {
72
+ preferences?: {
73
+ language: string;
74
+ timezone: string;
75
+ theme: "light" | "dark" | "auto";
76
+ emailNotifications: boolean;
77
+ } | undefined;
78
+ notifications?: {
79
+ email: boolean;
80
+ push: boolean;
81
+ sms: boolean;
82
+ marketing: boolean;
83
+ } | undefined;
84
+ id: number;
85
+ email: string;
86
+ name: string;
87
+ firstName?: string | undefined;
88
+ lastName?: string | undefined;
89
+ phone?: string | undefined;
90
+ avatar?: string | undefined;
91
+ status: UserStatus;
92
+ roles: UserRole[];
93
+ organizationId?: number | undefined;
94
+ organizationName?: string | undefined;
95
+ createdAt: string;
96
+ updatedAt: string;
97
+ lastLoginAt?: string | undefined;
98
+ emailVerified: boolean;
99
+ metadata?: Record<string, any> | undefined;
100
+ } | null>;
101
+ selectedUser: import("vue").Ref<{
102
+ id: number;
103
+ email: string;
104
+ name: string;
105
+ firstName?: string | undefined;
106
+ lastName?: string | undefined;
107
+ phone?: string | undefined;
108
+ avatar?: string | undefined;
109
+ status: UserStatus;
110
+ roles: UserRole[];
111
+ organizationId?: number | undefined;
112
+ organizationName?: string | undefined;
113
+ createdAt: string;
114
+ updatedAt: string;
115
+ lastLoginAt?: string | undefined;
116
+ emailVerified: boolean;
117
+ metadata?: Record<string, any> | undefined;
118
+ } | null, User | {
119
+ id: number;
120
+ email: string;
121
+ name: string;
122
+ firstName?: string | undefined;
123
+ lastName?: string | undefined;
124
+ phone?: string | undefined;
125
+ avatar?: string | undefined;
126
+ status: UserStatus;
127
+ roles: UserRole[];
128
+ organizationId?: number | undefined;
129
+ organizationName?: string | undefined;
130
+ createdAt: string;
131
+ updatedAt: string;
132
+ lastLoginAt?: string | undefined;
133
+ emailVerified: boolean;
134
+ metadata?: Record<string, any> | undefined;
135
+ } | null>;
136
+ stats: import("vue").Ref<{
137
+ totalUsers: number;
138
+ activeUsers: number;
139
+ newUsersThisMonth: number;
140
+ usersByRole: {
141
+ SUPER_ADMIN: number;
142
+ ADMIN: number;
143
+ AGENT: number;
144
+ FREELANCE: number;
145
+ AUTO_ENTREPRENEUR: number;
146
+ PARTICULAR: number;
147
+ USER: number;
148
+ };
149
+ usersByStatus: {
150
+ ACTIVE: number;
151
+ INACTIVE: number;
152
+ SUSPENDED: number;
153
+ PENDING: number;
154
+ DELETED: number;
155
+ };
156
+ } | null, UserStats | {
157
+ totalUsers: number;
158
+ activeUsers: number;
159
+ newUsersThisMonth: number;
160
+ usersByRole: {
161
+ SUPER_ADMIN: number;
162
+ ADMIN: number;
163
+ AGENT: number;
164
+ FREELANCE: number;
165
+ AUTO_ENTREPRENEUR: number;
166
+ PARTICULAR: number;
167
+ USER: number;
168
+ };
169
+ usersByStatus: {
170
+ ACTIVE: number;
171
+ INACTIVE: number;
172
+ SUSPENDED: number;
173
+ PENDING: number;
174
+ DELETED: number;
175
+ };
176
+ } | null>;
177
+ loading: import("vue").Ref<boolean, boolean>;
178
+ total: import("vue").Ref<number, number>;
179
+ currentPage: import("vue").Ref<number, number>;
180
+ pageSize: import("vue").Ref<number, number>;
181
+ activeUsers: import("vue").ComputedRef<{
182
+ id: number;
183
+ email: string;
184
+ name: string;
185
+ firstName?: string | undefined;
186
+ lastName?: string | undefined;
187
+ phone?: string | undefined;
188
+ avatar?: string | undefined;
189
+ status: UserStatus;
190
+ roles: UserRole[];
191
+ organizationId?: number | undefined;
192
+ organizationName?: string | undefined;
193
+ createdAt: string;
194
+ updatedAt: string;
195
+ lastLoginAt?: string | undefined;
196
+ emailVerified: boolean;
197
+ metadata?: Record<string, any> | undefined;
198
+ }[]>;
199
+ inactiveUsers: import("vue").ComputedRef<{
200
+ id: number;
201
+ email: string;
202
+ name: string;
203
+ firstName?: string | undefined;
204
+ lastName?: string | undefined;
205
+ phone?: string | undefined;
206
+ avatar?: string | undefined;
207
+ status: UserStatus;
208
+ roles: UserRole[];
209
+ organizationId?: number | undefined;
210
+ organizationName?: string | undefined;
211
+ createdAt: string;
212
+ updatedAt: string;
213
+ lastLoginAt?: string | undefined;
214
+ emailVerified: boolean;
215
+ metadata?: Record<string, any> | undefined;
216
+ }[]>;
217
+ suspendedUsers: import("vue").ComputedRef<{
218
+ id: number;
219
+ email: string;
220
+ name: string;
221
+ firstName?: string | undefined;
222
+ lastName?: string | undefined;
223
+ phone?: string | undefined;
224
+ avatar?: string | undefined;
225
+ status: UserStatus;
226
+ roles: UserRole[];
227
+ organizationId?: number | undefined;
228
+ organizationName?: string | undefined;
229
+ createdAt: string;
230
+ updatedAt: string;
231
+ lastLoginAt?: string | undefined;
232
+ emailVerified: boolean;
233
+ metadata?: Record<string, any> | undefined;
234
+ }[]>;
235
+ usersByRole: import("vue").ComputedRef<Record<UserRole, User[]>>;
236
+ hasRole: import("vue").ComputedRef<(userId: number, role: UserRole) => boolean>;
237
+ isCurrentUser: import("vue").ComputedRef<(userId: number) => boolean>;
238
+ fetchUsers: (params?: UserSearchParams) => Promise<void>;
239
+ fetchUserById: (id: number) => Promise<void>;
240
+ fetchProfile: () => Promise<void>;
241
+ createUser: (data: UserCreate) => Promise<User>;
242
+ updateUser: (id: number, data: UserUpdate) => Promise<User>;
243
+ updateProfile: (data: UserUpdate) => Promise<UserProfile>;
244
+ deleteUser: (id: number) => Promise<void>;
245
+ activateUser: (id: number) => Promise<User>;
246
+ deactivateUser: (id: number) => Promise<User>;
247
+ suspendUser: (id: number, reason?: string) => Promise<User>;
248
+ fetchStats: () => Promise<void>;
249
+ setPage: (page: number) => void;
250
+ setPageSize: (size: number) => void;
251
+ clearUsers: () => void;
252
+ setSelectedUser: (user: User | null) => void;
253
+ }, "users" | "total" | "loading" | "currentUser" | "selectedUser" | "stats" | "currentPage" | "pageSize">, Pick<{
254
+ users: import("vue").Ref<{
255
+ id: number;
256
+ email: string;
257
+ name: string;
258
+ firstName?: string | undefined;
259
+ lastName?: string | undefined;
260
+ phone?: string | undefined;
261
+ avatar?: string | undefined;
262
+ status: UserStatus;
263
+ roles: UserRole[];
264
+ organizationId?: number | undefined;
265
+ organizationName?: string | undefined;
266
+ createdAt: string;
267
+ updatedAt: string;
268
+ lastLoginAt?: string | undefined;
269
+ emailVerified: boolean;
270
+ metadata?: Record<string, any> | undefined;
271
+ }[], User[] | {
272
+ id: number;
273
+ email: string;
274
+ name: string;
275
+ firstName?: string | undefined;
276
+ lastName?: string | undefined;
277
+ phone?: string | undefined;
278
+ avatar?: string | undefined;
279
+ status: UserStatus;
280
+ roles: UserRole[];
281
+ organizationId?: number | undefined;
282
+ organizationName?: string | undefined;
283
+ createdAt: string;
284
+ updatedAt: string;
285
+ lastLoginAt?: string | undefined;
286
+ emailVerified: boolean;
287
+ metadata?: Record<string, any> | undefined;
288
+ }[]>;
289
+ currentUser: import("vue").Ref<{
290
+ preferences?: {
291
+ language: string;
292
+ timezone: string;
293
+ theme: "light" | "dark" | "auto";
294
+ emailNotifications: boolean;
295
+ } | undefined;
296
+ notifications?: {
297
+ email: boolean;
298
+ push: boolean;
299
+ sms: boolean;
300
+ marketing: boolean;
301
+ } | undefined;
302
+ id: number;
303
+ email: string;
304
+ name: string;
305
+ firstName?: string | undefined;
306
+ lastName?: string | undefined;
307
+ phone?: string | undefined;
308
+ avatar?: string | undefined;
309
+ status: UserStatus;
310
+ roles: UserRole[];
311
+ organizationId?: number | undefined;
312
+ organizationName?: string | undefined;
313
+ createdAt: string;
314
+ updatedAt: string;
315
+ lastLoginAt?: string | undefined;
316
+ emailVerified: boolean;
317
+ metadata?: Record<string, any> | undefined;
318
+ } | null, UserProfile | {
319
+ preferences?: {
320
+ language: string;
321
+ timezone: string;
322
+ theme: "light" | "dark" | "auto";
323
+ emailNotifications: boolean;
324
+ } | undefined;
325
+ notifications?: {
326
+ email: boolean;
327
+ push: boolean;
328
+ sms: boolean;
329
+ marketing: boolean;
330
+ } | undefined;
331
+ id: number;
332
+ email: string;
333
+ name: string;
334
+ firstName?: string | undefined;
335
+ lastName?: string | undefined;
336
+ phone?: string | undefined;
337
+ avatar?: string | undefined;
338
+ status: UserStatus;
339
+ roles: UserRole[];
340
+ organizationId?: number | undefined;
341
+ organizationName?: string | undefined;
342
+ createdAt: string;
343
+ updatedAt: string;
344
+ lastLoginAt?: string | undefined;
345
+ emailVerified: boolean;
346
+ metadata?: Record<string, any> | undefined;
347
+ } | null>;
348
+ selectedUser: import("vue").Ref<{
349
+ id: number;
350
+ email: string;
351
+ name: string;
352
+ firstName?: string | undefined;
353
+ lastName?: string | undefined;
354
+ phone?: string | undefined;
355
+ avatar?: string | undefined;
356
+ status: UserStatus;
357
+ roles: UserRole[];
358
+ organizationId?: number | undefined;
359
+ organizationName?: string | undefined;
360
+ createdAt: string;
361
+ updatedAt: string;
362
+ lastLoginAt?: string | undefined;
363
+ emailVerified: boolean;
364
+ metadata?: Record<string, any> | undefined;
365
+ } | null, User | {
366
+ id: number;
367
+ email: string;
368
+ name: string;
369
+ firstName?: string | undefined;
370
+ lastName?: string | undefined;
371
+ phone?: string | undefined;
372
+ avatar?: string | undefined;
373
+ status: UserStatus;
374
+ roles: UserRole[];
375
+ organizationId?: number | undefined;
376
+ organizationName?: string | undefined;
377
+ createdAt: string;
378
+ updatedAt: string;
379
+ lastLoginAt?: string | undefined;
380
+ emailVerified: boolean;
381
+ metadata?: Record<string, any> | undefined;
382
+ } | null>;
383
+ stats: import("vue").Ref<{
384
+ totalUsers: number;
385
+ activeUsers: number;
386
+ newUsersThisMonth: number;
387
+ usersByRole: {
388
+ SUPER_ADMIN: number;
389
+ ADMIN: number;
390
+ AGENT: number;
391
+ FREELANCE: number;
392
+ AUTO_ENTREPRENEUR: number;
393
+ PARTICULAR: number;
394
+ USER: number;
395
+ };
396
+ usersByStatus: {
397
+ ACTIVE: number;
398
+ INACTIVE: number;
399
+ SUSPENDED: number;
400
+ PENDING: number;
401
+ DELETED: number;
402
+ };
403
+ } | null, UserStats | {
404
+ totalUsers: number;
405
+ activeUsers: number;
406
+ newUsersThisMonth: number;
407
+ usersByRole: {
408
+ SUPER_ADMIN: number;
409
+ ADMIN: number;
410
+ AGENT: number;
411
+ FREELANCE: number;
412
+ AUTO_ENTREPRENEUR: number;
413
+ PARTICULAR: number;
414
+ USER: number;
415
+ };
416
+ usersByStatus: {
417
+ ACTIVE: number;
418
+ INACTIVE: number;
419
+ SUSPENDED: number;
420
+ PENDING: number;
421
+ DELETED: number;
422
+ };
423
+ } | null>;
424
+ loading: import("vue").Ref<boolean, boolean>;
425
+ total: import("vue").Ref<number, number>;
426
+ currentPage: import("vue").Ref<number, number>;
427
+ pageSize: import("vue").Ref<number, number>;
428
+ activeUsers: import("vue").ComputedRef<{
429
+ id: number;
430
+ email: string;
431
+ name: string;
432
+ firstName?: string | undefined;
433
+ lastName?: string | undefined;
434
+ phone?: string | undefined;
435
+ avatar?: string | undefined;
436
+ status: UserStatus;
437
+ roles: UserRole[];
438
+ organizationId?: number | undefined;
439
+ organizationName?: string | undefined;
440
+ createdAt: string;
441
+ updatedAt: string;
442
+ lastLoginAt?: string | undefined;
443
+ emailVerified: boolean;
444
+ metadata?: Record<string, any> | undefined;
445
+ }[]>;
446
+ inactiveUsers: import("vue").ComputedRef<{
447
+ id: number;
448
+ email: string;
449
+ name: string;
450
+ firstName?: string | undefined;
451
+ lastName?: string | undefined;
452
+ phone?: string | undefined;
453
+ avatar?: string | undefined;
454
+ status: UserStatus;
455
+ roles: UserRole[];
456
+ organizationId?: number | undefined;
457
+ organizationName?: string | undefined;
458
+ createdAt: string;
459
+ updatedAt: string;
460
+ lastLoginAt?: string | undefined;
461
+ emailVerified: boolean;
462
+ metadata?: Record<string, any> | undefined;
463
+ }[]>;
464
+ suspendedUsers: import("vue").ComputedRef<{
465
+ id: number;
466
+ email: string;
467
+ name: string;
468
+ firstName?: string | undefined;
469
+ lastName?: string | undefined;
470
+ phone?: string | undefined;
471
+ avatar?: string | undefined;
472
+ status: UserStatus;
473
+ roles: UserRole[];
474
+ organizationId?: number | undefined;
475
+ organizationName?: string | undefined;
476
+ createdAt: string;
477
+ updatedAt: string;
478
+ lastLoginAt?: string | undefined;
479
+ emailVerified: boolean;
480
+ metadata?: Record<string, any> | undefined;
481
+ }[]>;
482
+ usersByRole: import("vue").ComputedRef<Record<UserRole, User[]>>;
483
+ hasRole: import("vue").ComputedRef<(userId: number, role: UserRole) => boolean>;
484
+ isCurrentUser: import("vue").ComputedRef<(userId: number) => boolean>;
485
+ fetchUsers: (params?: UserSearchParams) => Promise<void>;
486
+ fetchUserById: (id: number) => Promise<void>;
487
+ fetchProfile: () => Promise<void>;
488
+ createUser: (data: UserCreate) => Promise<User>;
489
+ updateUser: (id: number, data: UserUpdate) => Promise<User>;
490
+ updateProfile: (data: UserUpdate) => Promise<UserProfile>;
491
+ deleteUser: (id: number) => Promise<void>;
492
+ activateUser: (id: number) => Promise<User>;
493
+ deactivateUser: (id: number) => Promise<User>;
494
+ suspendUser: (id: number, reason?: string) => Promise<User>;
495
+ fetchStats: () => Promise<void>;
496
+ setPage: (page: number) => void;
497
+ setPageSize: (size: number) => void;
498
+ clearUsers: () => void;
499
+ setSelectedUser: (user: User | null) => void;
500
+ }, "activeUsers" | "usersByRole" | "inactiveUsers" | "suspendedUsers" | "hasRole" | "isCurrentUser">, Pick<{
501
+ users: import("vue").Ref<{
502
+ id: number;
503
+ email: string;
504
+ name: string;
505
+ firstName?: string | undefined;
506
+ lastName?: string | undefined;
507
+ phone?: string | undefined;
508
+ avatar?: string | undefined;
509
+ status: UserStatus;
510
+ roles: UserRole[];
511
+ organizationId?: number | undefined;
512
+ organizationName?: string | undefined;
513
+ createdAt: string;
514
+ updatedAt: string;
515
+ lastLoginAt?: string | undefined;
516
+ emailVerified: boolean;
517
+ metadata?: Record<string, any> | undefined;
518
+ }[], User[] | {
519
+ id: number;
520
+ email: string;
521
+ name: string;
522
+ firstName?: string | undefined;
523
+ lastName?: string | undefined;
524
+ phone?: string | undefined;
525
+ avatar?: string | undefined;
526
+ status: UserStatus;
527
+ roles: UserRole[];
528
+ organizationId?: number | undefined;
529
+ organizationName?: string | undefined;
530
+ createdAt: string;
531
+ updatedAt: string;
532
+ lastLoginAt?: string | undefined;
533
+ emailVerified: boolean;
534
+ metadata?: Record<string, any> | undefined;
535
+ }[]>;
536
+ currentUser: import("vue").Ref<{
537
+ preferences?: {
538
+ language: string;
539
+ timezone: string;
540
+ theme: "light" | "dark" | "auto";
541
+ emailNotifications: boolean;
542
+ } | undefined;
543
+ notifications?: {
544
+ email: boolean;
545
+ push: boolean;
546
+ sms: boolean;
547
+ marketing: boolean;
548
+ } | undefined;
549
+ id: number;
550
+ email: string;
551
+ name: string;
552
+ firstName?: string | undefined;
553
+ lastName?: string | undefined;
554
+ phone?: string | undefined;
555
+ avatar?: string | undefined;
556
+ status: UserStatus;
557
+ roles: UserRole[];
558
+ organizationId?: number | undefined;
559
+ organizationName?: string | undefined;
560
+ createdAt: string;
561
+ updatedAt: string;
562
+ lastLoginAt?: string | undefined;
563
+ emailVerified: boolean;
564
+ metadata?: Record<string, any> | undefined;
565
+ } | null, UserProfile | {
566
+ preferences?: {
567
+ language: string;
568
+ timezone: string;
569
+ theme: "light" | "dark" | "auto";
570
+ emailNotifications: boolean;
571
+ } | undefined;
572
+ notifications?: {
573
+ email: boolean;
574
+ push: boolean;
575
+ sms: boolean;
576
+ marketing: boolean;
577
+ } | undefined;
578
+ id: number;
579
+ email: string;
580
+ name: string;
581
+ firstName?: string | undefined;
582
+ lastName?: string | undefined;
583
+ phone?: string | undefined;
584
+ avatar?: string | undefined;
585
+ status: UserStatus;
586
+ roles: UserRole[];
587
+ organizationId?: number | undefined;
588
+ organizationName?: string | undefined;
589
+ createdAt: string;
590
+ updatedAt: string;
591
+ lastLoginAt?: string | undefined;
592
+ emailVerified: boolean;
593
+ metadata?: Record<string, any> | undefined;
594
+ } | null>;
595
+ selectedUser: import("vue").Ref<{
596
+ id: number;
597
+ email: string;
598
+ name: string;
599
+ firstName?: string | undefined;
600
+ lastName?: string | undefined;
601
+ phone?: string | undefined;
602
+ avatar?: string | undefined;
603
+ status: UserStatus;
604
+ roles: UserRole[];
605
+ organizationId?: number | undefined;
606
+ organizationName?: string | undefined;
607
+ createdAt: string;
608
+ updatedAt: string;
609
+ lastLoginAt?: string | undefined;
610
+ emailVerified: boolean;
611
+ metadata?: Record<string, any> | undefined;
612
+ } | null, User | {
613
+ id: number;
614
+ email: string;
615
+ name: string;
616
+ firstName?: string | undefined;
617
+ lastName?: string | undefined;
618
+ phone?: string | undefined;
619
+ avatar?: string | undefined;
620
+ status: UserStatus;
621
+ roles: UserRole[];
622
+ organizationId?: number | undefined;
623
+ organizationName?: string | undefined;
624
+ createdAt: string;
625
+ updatedAt: string;
626
+ lastLoginAt?: string | undefined;
627
+ emailVerified: boolean;
628
+ metadata?: Record<string, any> | undefined;
629
+ } | null>;
630
+ stats: import("vue").Ref<{
631
+ totalUsers: number;
632
+ activeUsers: number;
633
+ newUsersThisMonth: number;
634
+ usersByRole: {
635
+ SUPER_ADMIN: number;
636
+ ADMIN: number;
637
+ AGENT: number;
638
+ FREELANCE: number;
639
+ AUTO_ENTREPRENEUR: number;
640
+ PARTICULAR: number;
641
+ USER: number;
642
+ };
643
+ usersByStatus: {
644
+ ACTIVE: number;
645
+ INACTIVE: number;
646
+ SUSPENDED: number;
647
+ PENDING: number;
648
+ DELETED: number;
649
+ };
650
+ } | null, UserStats | {
651
+ totalUsers: number;
652
+ activeUsers: number;
653
+ newUsersThisMonth: number;
654
+ usersByRole: {
655
+ SUPER_ADMIN: number;
656
+ ADMIN: number;
657
+ AGENT: number;
658
+ FREELANCE: number;
659
+ AUTO_ENTREPRENEUR: number;
660
+ PARTICULAR: number;
661
+ USER: number;
662
+ };
663
+ usersByStatus: {
664
+ ACTIVE: number;
665
+ INACTIVE: number;
666
+ SUSPENDED: number;
667
+ PENDING: number;
668
+ DELETED: number;
669
+ };
670
+ } | null>;
671
+ loading: import("vue").Ref<boolean, boolean>;
672
+ total: import("vue").Ref<number, number>;
673
+ currentPage: import("vue").Ref<number, number>;
674
+ pageSize: import("vue").Ref<number, number>;
675
+ activeUsers: import("vue").ComputedRef<{
676
+ id: number;
677
+ email: string;
678
+ name: string;
679
+ firstName?: string | undefined;
680
+ lastName?: string | undefined;
681
+ phone?: string | undefined;
682
+ avatar?: string | undefined;
683
+ status: UserStatus;
684
+ roles: UserRole[];
685
+ organizationId?: number | undefined;
686
+ organizationName?: string | undefined;
687
+ createdAt: string;
688
+ updatedAt: string;
689
+ lastLoginAt?: string | undefined;
690
+ emailVerified: boolean;
691
+ metadata?: Record<string, any> | undefined;
692
+ }[]>;
693
+ inactiveUsers: import("vue").ComputedRef<{
694
+ id: number;
695
+ email: string;
696
+ name: string;
697
+ firstName?: string | undefined;
698
+ lastName?: string | undefined;
699
+ phone?: string | undefined;
700
+ avatar?: string | undefined;
701
+ status: UserStatus;
702
+ roles: UserRole[];
703
+ organizationId?: number | undefined;
704
+ organizationName?: string | undefined;
705
+ createdAt: string;
706
+ updatedAt: string;
707
+ lastLoginAt?: string | undefined;
708
+ emailVerified: boolean;
709
+ metadata?: Record<string, any> | undefined;
710
+ }[]>;
711
+ suspendedUsers: import("vue").ComputedRef<{
712
+ id: number;
713
+ email: string;
714
+ name: string;
715
+ firstName?: string | undefined;
716
+ lastName?: string | undefined;
717
+ phone?: string | undefined;
718
+ avatar?: string | undefined;
719
+ status: UserStatus;
720
+ roles: UserRole[];
721
+ organizationId?: number | undefined;
722
+ organizationName?: string | undefined;
723
+ createdAt: string;
724
+ updatedAt: string;
725
+ lastLoginAt?: string | undefined;
726
+ emailVerified: boolean;
727
+ metadata?: Record<string, any> | undefined;
728
+ }[]>;
729
+ usersByRole: import("vue").ComputedRef<Record<UserRole, User[]>>;
730
+ hasRole: import("vue").ComputedRef<(userId: number, role: UserRole) => boolean>;
731
+ isCurrentUser: import("vue").ComputedRef<(userId: number) => boolean>;
732
+ fetchUsers: (params?: UserSearchParams) => Promise<void>;
733
+ fetchUserById: (id: number) => Promise<void>;
734
+ fetchProfile: () => Promise<void>;
735
+ createUser: (data: UserCreate) => Promise<User>;
736
+ updateUser: (id: number, data: UserUpdate) => Promise<User>;
737
+ updateProfile: (data: UserUpdate) => Promise<UserProfile>;
738
+ deleteUser: (id: number) => Promise<void>;
739
+ activateUser: (id: number) => Promise<User>;
740
+ deactivateUser: (id: number) => Promise<User>;
741
+ suspendUser: (id: number, reason?: string) => Promise<User>;
742
+ fetchStats: () => Promise<void>;
743
+ setPage: (page: number) => void;
744
+ setPageSize: (size: number) => void;
745
+ clearUsers: () => void;
746
+ setSelectedUser: (user: User | null) => void;
747
+ }, "fetchUsers" | "fetchUserById" | "fetchProfile" | "createUser" | "updateUser" | "updateProfile" | "deleteUser" | "activateUser" | "deactivateUser" | "suspendUser" | "fetchStats" | "setPage" | "setPageSize" | "clearUsers" | "setSelectedUser">>;
748
+ //# sourceMappingURL=user.store.d.ts.map