@osise/api-client 0.0.1

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 (116) hide show
  1. package/README.md +474 -0
  2. package/dist/cjs/api/admin.js +277 -0
  3. package/dist/cjs/api/admin.js.map +1 -0
  4. package/dist/cjs/api/artisans.js +277 -0
  5. package/dist/cjs/api/artisans.js.map +1 -0
  6. package/dist/cjs/api/auth.js +83 -0
  7. package/dist/cjs/api/auth.js.map +1 -0
  8. package/dist/cjs/api/consumers.js +170 -0
  9. package/dist/cjs/api/consumers.js.map +1 -0
  10. package/dist/cjs/api/index.js +22 -0
  11. package/dist/cjs/api/index.js.map +1 -0
  12. package/dist/cjs/api/jobs.js +202 -0
  13. package/dist/cjs/api/jobs.js.map +1 -0
  14. package/dist/cjs/hooks/index.js +435 -0
  15. package/dist/cjs/hooks/index.js.map +1 -0
  16. package/dist/cjs/index.js +189 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/types/admin.js +6 -0
  19. package/dist/cjs/types/admin.js.map +1 -0
  20. package/dist/cjs/types/artisan.js +6 -0
  21. package/dist/cjs/types/artisan.js.map +1 -0
  22. package/dist/cjs/types/auth.js +6 -0
  23. package/dist/cjs/types/auth.js.map +1 -0
  24. package/dist/cjs/types/common.js +6 -0
  25. package/dist/cjs/types/common.js.map +1 -0
  26. package/dist/cjs/types/consumer.js +6 -0
  27. package/dist/cjs/types/consumer.js.map +1 -0
  28. package/dist/cjs/types/enums.js +226 -0
  29. package/dist/cjs/types/enums.js.map +1 -0
  30. package/dist/cjs/types/index.js +35 -0
  31. package/dist/cjs/types/index.js.map +1 -0
  32. package/dist/cjs/types/job.js +6 -0
  33. package/dist/cjs/types/job.js.map +1 -0
  34. package/dist/cjs/utils/http-client.js +214 -0
  35. package/dist/cjs/utils/http-client.js.map +1 -0
  36. package/dist/cjs/utils/index.js +19 -0
  37. package/dist/cjs/utils/index.js.map +1 -0
  38. package/dist/cjs/utils/storage.js +105 -0
  39. package/dist/cjs/utils/storage.js.map +1 -0
  40. package/dist/esm/api/admin.js +269 -0
  41. package/dist/esm/api/admin.js.map +1 -0
  42. package/dist/esm/api/artisans.js +270 -0
  43. package/dist/esm/api/artisans.js.map +1 -0
  44. package/dist/esm/api/auth.js +79 -0
  45. package/dist/esm/api/auth.js.map +1 -0
  46. package/dist/esm/api/consumers.js +165 -0
  47. package/dist/esm/api/consumers.js.map +1 -0
  48. package/dist/esm/api/index.js +6 -0
  49. package/dist/esm/api/index.js.map +1 -0
  50. package/dist/esm/api/jobs.js +197 -0
  51. package/dist/esm/api/jobs.js.map +1 -0
  52. package/dist/esm/hooks/index.js +408 -0
  53. package/dist/esm/hooks/index.js.map +1 -0
  54. package/dist/esm/index.js +165 -0
  55. package/dist/esm/index.js.map +1 -0
  56. package/dist/esm/types/admin.js +5 -0
  57. package/dist/esm/types/admin.js.map +1 -0
  58. package/dist/esm/types/artisan.js +5 -0
  59. package/dist/esm/types/artisan.js.map +1 -0
  60. package/dist/esm/types/auth.js +5 -0
  61. package/dist/esm/types/auth.js.map +1 -0
  62. package/dist/esm/types/common.js +5 -0
  63. package/dist/esm/types/common.js.map +1 -0
  64. package/dist/esm/types/consumer.js +5 -0
  65. package/dist/esm/types/consumer.js.map +1 -0
  66. package/dist/esm/types/enums.js +223 -0
  67. package/dist/esm/types/enums.js.map +1 -0
  68. package/dist/esm/types/index.js +19 -0
  69. package/dist/esm/types/index.js.map +1 -0
  70. package/dist/esm/types/job.js +5 -0
  71. package/dist/esm/types/job.js.map +1 -0
  72. package/dist/esm/utils/http-client.js +208 -0
  73. package/dist/esm/utils/http-client.js.map +1 -0
  74. package/dist/esm/utils/index.js +3 -0
  75. package/dist/esm/utils/index.js.map +1 -0
  76. package/dist/esm/utils/storage.js +99 -0
  77. package/dist/esm/utils/storage.js.map +1 -0
  78. package/dist/types/api/admin.d.ts +188 -0
  79. package/dist/types/api/admin.d.ts.map +1 -0
  80. package/dist/types/api/artisans.d.ts +183 -0
  81. package/dist/types/api/artisans.d.ts.map +1 -0
  82. package/dist/types/api/auth.d.ts +58 -0
  83. package/dist/types/api/auth.d.ts.map +1 -0
  84. package/dist/types/api/consumers.d.ts +113 -0
  85. package/dist/types/api/consumers.d.ts.map +1 -0
  86. package/dist/types/api/index.d.ts +6 -0
  87. package/dist/types/api/index.d.ts.map +1 -0
  88. package/dist/types/api/jobs.d.ts +136 -0
  89. package/dist/types/api/jobs.d.ts.map +1 -0
  90. package/dist/types/hooks/index.d.ts +225 -0
  91. package/dist/types/hooks/index.d.ts.map +1 -0
  92. package/dist/types/index.d.ts +127 -0
  93. package/dist/types/index.d.ts.map +1 -0
  94. package/dist/types/types/admin.d.ts +226 -0
  95. package/dist/types/types/admin.d.ts.map +1 -0
  96. package/dist/types/types/artisan.d.ts +438 -0
  97. package/dist/types/types/artisan.d.ts.map +1 -0
  98. package/dist/types/types/auth.d.ts +92 -0
  99. package/dist/types/types/auth.d.ts.map +1 -0
  100. package/dist/types/types/common.d.ts +105 -0
  101. package/dist/types/types/common.d.ts.map +1 -0
  102. package/dist/types/types/consumer.d.ts +144 -0
  103. package/dist/types/types/consumer.d.ts.map +1 -0
  104. package/dist/types/types/enums.d.ts +199 -0
  105. package/dist/types/types/enums.d.ts.map +1 -0
  106. package/dist/types/types/index.d.ts +12 -0
  107. package/dist/types/types/index.d.ts.map +1 -0
  108. package/dist/types/types/job.d.ts +226 -0
  109. package/dist/types/types/job.d.ts.map +1 -0
  110. package/dist/types/utils/http-client.d.ts +65 -0
  111. package/dist/types/utils/http-client.d.ts.map +1 -0
  112. package/dist/types/utils/index.d.ts +3 -0
  113. package/dist/types/utils/index.d.ts.map +1 -0
  114. package/dist/types/utils/storage.d.ts +48 -0
  115. package/dist/types/utils/storage.d.ts.map +1 -0
  116. package/package.json +78 -0
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Admin DTOs
3
+ */
4
+ import { AccountType, ArtisanStatus, BlockReason, DocumentStatus, ServiceCategory, VerificationStatus } from './enums';
5
+ import { PaginationParams, DateRange } from './common';
6
+ import { ArtisanProfileDto, DocumentStatusDto, GuarantorDto } from './artisan';
7
+ import { ConsumerProfileDto, AddressDto } from './consumer';
8
+ /** Admin artisan list item */
9
+ export interface AdminArtisanListItemDto {
10
+ id: string;
11
+ userId: string;
12
+ firstName: string;
13
+ lastName: string;
14
+ phoneNumber: string;
15
+ email?: string;
16
+ profilePhotoUrl?: string;
17
+ serviceCategory: ServiceCategory;
18
+ status: ArtisanStatus;
19
+ verificationStatus: VerificationStatus;
20
+ rating: number;
21
+ totalJobsCompleted: number;
22
+ memberSince: string;
23
+ lastActiveAt?: string;
24
+ city: string;
25
+ state: string;
26
+ }
27
+ /** Admin artisan detail */
28
+ export interface AdminArtisanDetailDto extends ArtisanProfileDto {
29
+ nin: string;
30
+ documents: DocumentStatusDto[];
31
+ guarantors: GuarantorDto[];
32
+ adminNotes: AdminNoteDto[];
33
+ tags: string[];
34
+ strikes: StrikeDto[];
35
+ totalEarnings: number;
36
+ pendingEarnings: number;
37
+ lastPayoutAt?: string;
38
+ }
39
+ /** Artisan filter parameters */
40
+ export interface ArtisanFilterDto extends PaginationParams {
41
+ search?: string;
42
+ serviceCategory?: ServiceCategory;
43
+ status?: ArtisanStatus;
44
+ verificationStatus?: VerificationStatus;
45
+ city?: string;
46
+ state?: string;
47
+ minRating?: number;
48
+ hasStrikes?: boolean;
49
+ sortBy?: 'name' | 'rating' | 'jobsCompleted' | 'memberSince' | 'lastActive';
50
+ sortDirection?: 'asc' | 'desc';
51
+ }
52
+ /** Application filter parameters */
53
+ export interface ApplicationFilterDto extends PaginationParams {
54
+ search?: string;
55
+ serviceCategory?: ServiceCategory;
56
+ verificationStatus?: VerificationStatus;
57
+ city?: string;
58
+ state?: string;
59
+ submittedAfter?: string;
60
+ submittedBefore?: string;
61
+ sortBy?: 'submittedAt' | 'name' | 'stage';
62
+ sortDirection?: 'asc' | 'desc';
63
+ }
64
+ /** Admin consumer list item */
65
+ export interface AdminConsumerListItemDto {
66
+ id: string;
67
+ userId: string;
68
+ firstName: string;
69
+ lastName: string;
70
+ phoneNumber: string;
71
+ email?: string;
72
+ profilePhotoUrl?: string;
73
+ accountType: AccountType;
74
+ totalJobsRequested: number;
75
+ totalJobsCompleted: number;
76
+ memberSince: string;
77
+ lastActiveAt?: string;
78
+ isBlocked: boolean;
79
+ companyName?: string;
80
+ }
81
+ /** Admin consumer detail */
82
+ export interface AdminConsumerDetailDto extends ConsumerProfileDto {
83
+ addresses: AddressDto[];
84
+ adminNotes: AdminNoteDto[];
85
+ tags: string[];
86
+ isBlocked: boolean;
87
+ blockReason?: BlockReason;
88
+ blockedAt?: string;
89
+ blockedBy?: string;
90
+ totalSpent: number;
91
+ averageJobValue: number;
92
+ lastJobAt?: string;
93
+ }
94
+ /** Consumer filter parameters */
95
+ export interface ConsumerFilterDto extends PaginationParams {
96
+ search?: string;
97
+ accountType?: AccountType;
98
+ city?: string;
99
+ state?: string;
100
+ isBlocked?: boolean;
101
+ companyId?: string;
102
+ minJobsCompleted?: number;
103
+ memberSince?: DateRange;
104
+ sortBy?: 'name' | 'jobsCompleted' | 'memberSince' | 'lastActive' | 'totalSpent';
105
+ sortDirection?: 'asc' | 'desc';
106
+ }
107
+ /** Block consumer request */
108
+ export interface BlockConsumerDto {
109
+ reason: BlockReason;
110
+ notes?: string;
111
+ }
112
+ /** Admin note */
113
+ export interface AdminNoteDto {
114
+ id: string;
115
+ content: string;
116
+ createdBy: string;
117
+ createdByName: string;
118
+ createdAt: string;
119
+ updatedAt?: string;
120
+ }
121
+ /** Create admin note */
122
+ export interface CreateAdminNoteDto {
123
+ content: string;
124
+ }
125
+ /** Update tags */
126
+ export interface UpdateTagsDto {
127
+ tags: string[];
128
+ }
129
+ /** Strike record */
130
+ export interface StrikeDto {
131
+ id: string;
132
+ type: string;
133
+ reason: string;
134
+ severity: 'warning' | 'minor' | 'major' | 'critical';
135
+ issuedBy: string;
136
+ issuedByName: string;
137
+ issuedAt: string;
138
+ expiresAt?: string;
139
+ isActive: boolean;
140
+ notes?: string;
141
+ }
142
+ /** Issue strike request */
143
+ export interface IssueStrikeDto {
144
+ type: string;
145
+ reason: string;
146
+ severity: 'warning' | 'minor' | 'major' | 'critical';
147
+ notes?: string;
148
+ expiresAt?: string;
149
+ }
150
+ /** Review document request */
151
+ export interface ReviewDocumentDto {
152
+ status: DocumentStatus;
153
+ rejectionReason?: string;
154
+ }
155
+ /** Schedule field visit request */
156
+ export interface ScheduleFieldVisitDto {
157
+ artisanId: string;
158
+ date: string;
159
+ time: string;
160
+ fieldAgentId: string;
161
+ notes?: string;
162
+ }
163
+ /** Complete field visit request */
164
+ export interface CompleteFieldVisitDto {
165
+ visitId: string;
166
+ result: 'passed' | 'failed';
167
+ notes?: string;
168
+ photos?: string[];
169
+ }
170
+ /** Approve/reject artisan application */
171
+ export interface ProcessApplicationDto {
172
+ action: 'approve' | 'reject';
173
+ rejectionReason?: string;
174
+ notes?: string;
175
+ }
176
+ /** Verification workflow action */
177
+ export interface VerificationActionDto {
178
+ action: 'advance' | 'reject' | 'revert';
179
+ targetStage?: VerificationStatus;
180
+ reason?: string;
181
+ notes?: string;
182
+ }
183
+ /** Dashboard statistics */
184
+ export interface DashboardStatsDto {
185
+ totalConsumers: number;
186
+ totalArtisans: number;
187
+ pendingApplications: number;
188
+ activeJobs: number;
189
+ completedJobsToday: number;
190
+ revenueToday: number;
191
+ newConsumersToday: number;
192
+ newArtisansToday: number;
193
+ }
194
+ /** Artisan analytics */
195
+ export interface ArtisanAnalyticsDto {
196
+ totalArtisans: number;
197
+ activeArtisans: number;
198
+ byCategory: {
199
+ category: ServiceCategory;
200
+ count: number;
201
+ }[];
202
+ byStatus: {
203
+ status: ArtisanStatus;
204
+ count: number;
205
+ }[];
206
+ byVerificationStatus: {
207
+ status: VerificationStatus;
208
+ count: number;
209
+ }[];
210
+ averageRating: number;
211
+ topPerformers: AdminArtisanListItemDto[];
212
+ }
213
+ /** Consumer analytics */
214
+ export interface ConsumerAnalyticsDto {
215
+ totalConsumers: number;
216
+ activeConsumers: number;
217
+ byAccountType: {
218
+ type: AccountType;
219
+ count: number;
220
+ }[];
221
+ newConsumersThisMonth: number;
222
+ churnRate: number;
223
+ averageJobsPerConsumer: number;
224
+ topSpenders: AdminConsumerListItemDto[];
225
+ }
226
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/types/admin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,438 @@
1
+ /**
2
+ * Artisan DTOs
3
+ */
4
+ import { ArtisanStatus, AvailabilityStatus, BadgeType, DayOfWeek, DocumentStatus, DocumentType, GuarantorStatus, ServiceCategory, SkillTestResult, StrikeType, VerificationStatus, AlertSeverity } from './enums';
5
+ import { Coordinates, RatingBreakdown, PaginationParams, DateRange } from './common';
6
+ /** Register artisan profile */
7
+ export interface RegisterArtisanDto {
8
+ serviceCategory: ServiceCategory;
9
+ yearsOfExperience: number;
10
+ nin: string;
11
+ street: string;
12
+ area: string;
13
+ city: string;
14
+ state: string;
15
+ latitude: number;
16
+ longitude: number;
17
+ emergencyContactName: string;
18
+ emergencyContactPhone: string;
19
+ emergencyContactRelationship: string;
20
+ hasOwnTools: boolean;
21
+ hasTransportation: boolean;
22
+ preferredWorkRadius?: number;
23
+ bio?: string;
24
+ }
25
+ /** Update artisan profile */
26
+ export interface UpdateArtisanDto {
27
+ firstName?: string;
28
+ lastName?: string;
29
+ email?: string;
30
+ bio?: string;
31
+ yearsOfExperience?: number;
32
+ emergencyContactName?: string;
33
+ emergencyContactPhone?: string;
34
+ emergencyContactRelationship?: string;
35
+ hasOwnTools?: boolean;
36
+ hasTransportation?: boolean;
37
+ preferredWorkRadius?: number;
38
+ }
39
+ /** Update profile photo */
40
+ export interface UpdateProfilePhotoDto {
41
+ photoUrl: string;
42
+ }
43
+ /** Artisan profile response */
44
+ export interface ArtisanProfileDto {
45
+ id: string;
46
+ userId: string;
47
+ firstName: string;
48
+ lastName: string;
49
+ phoneNumber: string;
50
+ email?: string;
51
+ profilePhotoUrl?: string;
52
+ serviceCategory: ServiceCategory;
53
+ yearsOfExperience: number;
54
+ bio?: string;
55
+ street: string;
56
+ area: string;
57
+ city: string;
58
+ state: string;
59
+ latitude: number;
60
+ longitude: number;
61
+ emergencyContactName: string;
62
+ emergencyContactPhone: string;
63
+ emergencyContactRelationship: string;
64
+ hasOwnTools: boolean;
65
+ hasTransportation: boolean;
66
+ preferredWorkRadius: number;
67
+ status: ArtisanStatus;
68
+ verificationStatus: VerificationStatus;
69
+ rating: RatingBreakdown;
70
+ totalJobsCompleted: number;
71
+ badges: BadgeDto[];
72
+ memberSince: string;
73
+ isVerified: boolean;
74
+ }
75
+ /** Badge information */
76
+ export interface BadgeDto {
77
+ type: BadgeType;
78
+ name: string;
79
+ description: string;
80
+ earnedAt: string;
81
+ }
82
+ /** Submit document request */
83
+ export interface SubmitDocumentDto {
84
+ documentType: DocumentType;
85
+ fileUrl: string;
86
+ fileName: string;
87
+ fileSize: number;
88
+ mimeType: string;
89
+ expiryDate?: string;
90
+ }
91
+ /** Resubmit document request */
92
+ export interface ResubmitDocumentDto {
93
+ fileUrl: string;
94
+ fileName: string;
95
+ fileSize: number;
96
+ mimeType: string;
97
+ expiryDate?: string;
98
+ }
99
+ /** Document status response */
100
+ export interface DocumentStatusDto {
101
+ id: string;
102
+ documentType: DocumentType;
103
+ fileUrl: string;
104
+ fileName: string;
105
+ status: DocumentStatus;
106
+ rejectionReason?: string;
107
+ submittedAt: string;
108
+ reviewedAt?: string;
109
+ expiryDate?: string;
110
+ }
111
+ /** Documents overview */
112
+ export interface DocumentsOverviewDto {
113
+ documents: DocumentStatusDto[];
114
+ requiredDocuments: DocumentType[];
115
+ pendingCount: number;
116
+ approvedCount: number;
117
+ rejectedCount: number;
118
+ isComplete: boolean;
119
+ }
120
+ /** Create guarantor request */
121
+ export interface CreateGuarantorDto {
122
+ fullName: string;
123
+ phoneNumber: string;
124
+ email?: string;
125
+ relationship: string;
126
+ occupation: string;
127
+ address: string;
128
+ }
129
+ /** Update guarantor request */
130
+ export interface UpdateGuarantorDto {
131
+ fullName?: string;
132
+ phoneNumber?: string;
133
+ email?: string;
134
+ relationship?: string;
135
+ occupation?: string;
136
+ address?: string;
137
+ }
138
+ /** Guarantor response */
139
+ export interface GuarantorDto {
140
+ id: string;
141
+ fullName: string;
142
+ phoneNumber: string;
143
+ email?: string;
144
+ relationship: string;
145
+ occupation: string;
146
+ address: string;
147
+ status: GuarantorStatus;
148
+ verificationNotes?: string;
149
+ submittedAt: string;
150
+ verifiedAt?: string;
151
+ }
152
+ /** Bank account request */
153
+ export interface CreateBankAccountDto {
154
+ bankCode: string;
155
+ accountNumber: string;
156
+ accountName: string;
157
+ }
158
+ /** Bank account response */
159
+ export interface BankAccountDto {
160
+ id: string;
161
+ bankName: string;
162
+ bankCode: string;
163
+ accountNumber: string;
164
+ accountName: string;
165
+ isVerified: boolean;
166
+ createdAt: string;
167
+ }
168
+ /** Availability status response */
169
+ export interface AvailabilityDto {
170
+ status: AvailabilityStatus;
171
+ currentLocation?: Coordinates;
172
+ lastLocationUpdate?: string;
173
+ workingHours: WorkingHoursDto[];
174
+ daysOff: DayOffDto[];
175
+ }
176
+ /** Update availability status */
177
+ export interface UpdateAvailabilityStatusDto {
178
+ status: AvailabilityStatus;
179
+ }
180
+ /** Working hours for a day */
181
+ export interface WorkingHoursDto {
182
+ dayOfWeek: DayOfWeek;
183
+ isWorking: boolean;
184
+ startTime?: string;
185
+ endTime?: string;
186
+ }
187
+ /** Update working hours */
188
+ export interface UpdateWorkingHoursDto {
189
+ workingHours: WorkingHoursDto[];
190
+ }
191
+ /** Day off entry */
192
+ export interface DayOffDto {
193
+ id: string;
194
+ date: string;
195
+ startTime?: string;
196
+ endTime?: string;
197
+ isFullDay: boolean;
198
+ reason?: string;
199
+ createdAt: string;
200
+ }
201
+ /** Create day off request */
202
+ export interface CreateDayOffDto {
203
+ date: string;
204
+ startTime?: string;
205
+ endTime?: string;
206
+ isFullDay?: boolean;
207
+ reason?: string;
208
+ }
209
+ /** Update location */
210
+ export interface UpdateLocationDto {
211
+ latitude: number;
212
+ longitude: number;
213
+ }
214
+ /** Service area */
215
+ export interface ServiceAreaDto {
216
+ id: string;
217
+ area: string;
218
+ city: string;
219
+ state: string;
220
+ isActive: boolean;
221
+ }
222
+ /** Update service areas */
223
+ export interface UpdateServiceAreasDto {
224
+ serviceAreas: Omit<ServiceAreaDto, 'id'>[];
225
+ }
226
+ /** Tools checklist item */
227
+ export interface ToolsChecklistItemDto {
228
+ toolName: string;
229
+ isOwned: boolean;
230
+ notes?: string;
231
+ }
232
+ /** Update tools checklist */
233
+ export interface UpdateToolsChecklistDto {
234
+ tools: ToolsChecklistItemDto[];
235
+ }
236
+ /** Application status (verification workflow) */
237
+ export interface ApplicationStatusDto {
238
+ currentStage: VerificationStatus;
239
+ stageProgress: StageProgressDto[];
240
+ documentsStatus: DocumentsOverviewDto;
241
+ guarantorsStatus: GuarantorsStatusDto;
242
+ fieldVisitStatus?: FieldVisitStatusDto;
243
+ skillTestStatus?: SkillTestStatusDto;
244
+ trainingStatus?: TrainingStatusDto;
245
+ rejectionReason?: string;
246
+ estimatedCompletionDate?: string;
247
+ }
248
+ /** Stage progress */
249
+ export interface StageProgressDto {
250
+ stage: VerificationStatus;
251
+ status: 'completed' | 'current' | 'pending' | 'skipped';
252
+ completedAt?: string;
253
+ }
254
+ /** Guarantors status summary */
255
+ export interface GuarantorsStatusDto {
256
+ guarantors: GuarantorDto[];
257
+ requiredCount: number;
258
+ verifiedCount: number;
259
+ isComplete: boolean;
260
+ }
261
+ /** Field visit status */
262
+ export interface FieldVisitStatusDto {
263
+ isScheduled: boolean;
264
+ scheduledDate?: string;
265
+ scheduledTime?: string;
266
+ fieldAgentName?: string;
267
+ fieldAgentPhone?: string;
268
+ visitResult?: 'passed' | 'failed' | 'pending';
269
+ notes?: string;
270
+ }
271
+ /** Skill test slot */
272
+ export interface SkillTestSlotDto {
273
+ id: string;
274
+ date: string;
275
+ startTime: string;
276
+ endTime: string;
277
+ location: string;
278
+ availableSpots: number;
279
+ }
280
+ /** Book skill test request */
281
+ export interface BookSkillTestDto {
282
+ slotId: string;
283
+ }
284
+ /** Skill test booking confirmation */
285
+ export interface SkillTestBookingDto {
286
+ bookingId: string;
287
+ slotId: string;
288
+ date: string;
289
+ startTime: string;
290
+ endTime: string;
291
+ location: string;
292
+ instructions: string;
293
+ }
294
+ /** Skill test status */
295
+ export interface SkillTestStatusDto {
296
+ isBooked: boolean;
297
+ booking?: SkillTestBookingDto;
298
+ result?: SkillTestResult;
299
+ score?: number;
300
+ feedback?: string;
301
+ completedAt?: string;
302
+ }
303
+ /** Training session */
304
+ export interface TrainingSessionDto {
305
+ id: string;
306
+ title: string;
307
+ date: string;
308
+ startTime: string;
309
+ endTime: string;
310
+ location: string;
311
+ isCompleted: boolean;
312
+ attendanceMarked: boolean;
313
+ }
314
+ /** Training status */
315
+ export interface TrainingStatusDto {
316
+ isScheduled: boolean;
317
+ sessions: TrainingSessionDto[];
318
+ completedSessions: number;
319
+ totalSessions: number;
320
+ isComplete: boolean;
321
+ }
322
+ /** Earnings summary */
323
+ export interface EarningsSummaryDto {
324
+ totalEarnings: number;
325
+ pendingEarnings: number;
326
+ currentPeriodEarnings: number;
327
+ lastPayoutDate?: string;
328
+ lastPayoutAmount?: number;
329
+ currency: string;
330
+ }
331
+ /** Job earning entry */
332
+ export interface JobEarningDto {
333
+ id: string;
334
+ jobId: string;
335
+ jobTitle: string;
336
+ completedAt: string;
337
+ laborAmount: number;
338
+ materialsAmount: number;
339
+ totalAmount: number;
340
+ platformFee: number;
341
+ netEarning: number;
342
+ status: 'pending' | 'processing' | 'paid';
343
+ currency: string;
344
+ }
345
+ /** Job earnings query params */
346
+ export interface JobEarningsParams extends PaginationParams, DateRange {
347
+ status?: 'pending' | 'processing' | 'paid';
348
+ }
349
+ /** Pending earnings breakdown */
350
+ export interface PendingEarningsDto {
351
+ total: number;
352
+ inEscrow: number;
353
+ awaitingPayment: number;
354
+ processingPayout: number;
355
+ jobs: JobEarningDto[];
356
+ currency: string;
357
+ }
358
+ /** Payout record */
359
+ export interface PayoutDto {
360
+ id: string;
361
+ amount: number;
362
+ status: 'pending' | 'processing' | 'completed' | 'failed';
363
+ bankAccountLast4: string;
364
+ bankName: string;
365
+ requestedAt: string;
366
+ processedAt?: string;
367
+ failureReason?: string;
368
+ reference: string;
369
+ currency: string;
370
+ }
371
+ /** Payouts query params */
372
+ export interface PayoutsParams extends PaginationParams, DateRange {
373
+ status?: 'pending' | 'processing' | 'completed' | 'failed';
374
+ }
375
+ /** Performance rating */
376
+ export interface PerformanceRatingDto {
377
+ overall: number;
378
+ quality: number;
379
+ punctuality: number;
380
+ professionalism: number;
381
+ value: number;
382
+ totalReviews: number;
383
+ ratingDistribution: {
384
+ [key: number]: number;
385
+ };
386
+ }
387
+ /** Consumer review */
388
+ export interface ReviewDto {
389
+ id: string;
390
+ jobId: string;
391
+ consumerName: string;
392
+ consumerPhotoUrl?: string;
393
+ overall: number;
394
+ quality: number;
395
+ punctuality: number;
396
+ professionalism: number;
397
+ value: number;
398
+ reviewText?: string;
399
+ createdAt: string;
400
+ artisanResponse?: string;
401
+ artisanRespondedAt?: string;
402
+ }
403
+ /** Reviews query params */
404
+ export interface ReviewsParams extends PaginationParams {
405
+ minRating?: number;
406
+ maxRating?: number;
407
+ }
408
+ /** Performance metrics for a period */
409
+ export interface PerformanceMetricsDto {
410
+ period: string;
411
+ startDate: string;
412
+ endDate: string;
413
+ jobsCompleted: number;
414
+ jobsAssigned: number;
415
+ completionRate: number;
416
+ averageRating: number;
417
+ totalEarnings: number;
418
+ onTimeRate: number;
419
+ cancellationRate: number;
420
+ repeatCustomerRate: number;
421
+ }
422
+ /** Performance metrics query params */
423
+ export interface PerformanceMetricsParams {
424
+ period: 'week' | 'month' | 'quarter' | 'year';
425
+ }
426
+ /** Performance alert */
427
+ export interface PerformanceAlertDto {
428
+ id: string;
429
+ type: StrikeType;
430
+ severity: AlertSeverity;
431
+ title: string;
432
+ message: string;
433
+ actionRequired?: string;
434
+ createdAt: string;
435
+ acknowledgedAt?: string;
436
+ expiresAt?: string;
437
+ }
438
+ //# sourceMappingURL=artisan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artisan.d.ts","sourceRoot":"","sources":["../../../src/types/artisan.ts"],"names":[],"mappings":"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"}