@teja-app/api-client 2026.5.13 → 2026.5.17
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/dist/generated/index.d.ts +4 -4
- package/dist/generated/index.d.ts.map +1 -1
- package/dist/generated/index.js +4 -4
- package/dist/generated/index.js.map +1 -1
- package/dist/generated/services/AppointmentsService.d.ts +53 -0
- package/dist/generated/services/AppointmentsService.d.ts.map +1 -1
- package/dist/generated/services/AppointmentsService.js +30 -0
- package/dist/generated/services/AppointmentsService.js.map +1 -1
- package/dist/generated/services/BillingCodesService.d.ts +25 -0
- package/dist/generated/services/BillingCodesService.d.ts.map +1 -0
- package/dist/generated/services/BillingCodesService.js +20 -0
- package/dist/generated/services/BillingCodesService.js.map +1 -0
- package/dist/generated/services/ClientPortalAppointmentsService.d.ts +6 -0
- package/dist/generated/services/ClientPortalAppointmentsService.d.ts.map +1 -1
- package/dist/generated/services/ClientPortalAppointmentsService.js.map +1 -1
- package/dist/generated/services/ClientPortalService.d.ts +224 -0
- package/dist/generated/services/ClientPortalService.d.ts.map +1 -1
- package/dist/generated/services/ClientPortalService.js +50 -0
- package/dist/generated/services/ClientPortalService.js.map +1 -1
- package/dist/generated/services/ClientsService.d.ts +17 -0
- package/dist/generated/services/ClientsService.d.ts.map +1 -1
- package/dist/generated/services/ClientsService.js +15 -0
- package/dist/generated/services/ClientsService.js.map +1 -1
- package/dist/generated/services/InvoicesService.d.ts +635 -0
- package/dist/generated/services/InvoicesService.d.ts.map +1 -0
- package/dist/generated/services/InvoicesService.js +172 -0
- package/dist/generated/services/InvoicesService.js.map +1 -0
- package/dist/generated/services/ServicesService.d.ts +204 -0
- package/dist/generated/services/ServicesService.d.ts.map +1 -0
- package/dist/generated/services/ServicesService.js +109 -0
- package/dist/generated/services/ServicesService.js.map +1 -0
- package/dist/generated/services/SuperbillsService.d.ts +60 -357
- package/dist/generated/services/SuperbillsService.d.ts.map +1 -1
- package/dist/generated/services/SuperbillsService.js +8 -240
- package/dist/generated/services/SuperbillsService.js.map +1 -1
- package/dist/generated/services/TelehealthService.d.ts +30 -0
- package/dist/generated/services/TelehealthService.d.ts.map +1 -0
- package/dist/generated/services/TelehealthService.js +46 -0
- package/dist/generated/services/TelehealthService.js.map +1 -0
- package/package.json +1 -1
- package/dist/generated/services/BillingService.d.ts +0 -427
- package/dist/generated/services/BillingService.d.ts.map +0 -1
- package/dist/generated/services/BillingService.js +0 -280
- package/dist/generated/services/BillingService.js.map +0 -1
- package/dist/generated/services/ClientPortalSuperbillsService.d.ts +0 -13
- package/dist/generated/services/ClientPortalSuperbillsService.d.ts.map +0 -1
- package/dist/generated/services/ClientPortalSuperbillsService.js +0 -20
- package/dist/generated/services/ClientPortalSuperbillsService.js.map +0 -1
- package/dist/generated/services/CreditsService.d.ts +0 -82
- package/dist/generated/services/CreditsService.d.ts.map +0 -1
- package/dist/generated/services/CreditsService.js +0 -63
- package/dist/generated/services/CreditsService.js.map +0 -1
- package/dist/generated/services/SuperbillCodesService.d.ts +0 -84
- package/dist/generated/services/SuperbillCodesService.d.ts.map +0 -1
- package/dist/generated/services/SuperbillCodesService.js +0 -84
- package/dist/generated/services/SuperbillCodesService.js.map +0 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { OpenAPI } from '../core/OpenAPI';
|
|
2
|
+
import { request as __request } from '../core/request';
|
|
3
|
+
export class InvoicesService {
|
|
4
|
+
/**
|
|
5
|
+
* List invoices
|
|
6
|
+
* List invoices for this tenant, optionally filtered by client and/or status.
|
|
7
|
+
* @returns any Response for status 200
|
|
8
|
+
* @throws ApiError
|
|
9
|
+
*/
|
|
10
|
+
static getInvoices({ clientId, status, }) {
|
|
11
|
+
return __request(OpenAPI, {
|
|
12
|
+
method: 'GET',
|
|
13
|
+
url: '/invoices',
|
|
14
|
+
query: {
|
|
15
|
+
'clientId': clientId,
|
|
16
|
+
'status': status,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Aggregate billing metrics for the invoices list
|
|
22
|
+
* Tenant-scoped aggregates: totalOutstanding, collectedMonth, collectedYear, avgDaysToPay, outstandingByAge[].
|
|
23
|
+
* @returns any Response for status 200
|
|
24
|
+
* @throws ApiError
|
|
25
|
+
*/
|
|
26
|
+
static getInvoicesMetrics() {
|
|
27
|
+
return __request(OpenAPI, {
|
|
28
|
+
method: 'GET',
|
|
29
|
+
url: '/invoices/metrics',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get an invoice with its line items
|
|
34
|
+
* @returns any Response for status 200
|
|
35
|
+
* @throws ApiError
|
|
36
|
+
*/
|
|
37
|
+
static getInvoicesById({ id, }) {
|
|
38
|
+
return __request(OpenAPI, {
|
|
39
|
+
method: 'GET',
|
|
40
|
+
url: '/invoices/{id}',
|
|
41
|
+
path: {
|
|
42
|
+
'id': id,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Bulk-create an invoice from appointments
|
|
48
|
+
* Creates a draft invoice + one line item per appointment, snapshotting service info and attaching the client's active diagnoses by rank.
|
|
49
|
+
* @returns any Response for status 200
|
|
50
|
+
* @throws ApiError
|
|
51
|
+
*/
|
|
52
|
+
static postInvoicesFromAppointments({ requestBody, }) {
|
|
53
|
+
return __request(OpenAPI, {
|
|
54
|
+
method: 'POST',
|
|
55
|
+
url: '/invoices/from-appointments',
|
|
56
|
+
body: requestBody,
|
|
57
|
+
mediaType: 'application/json',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Finalize a draft invoice (draft → ready)
|
|
62
|
+
* Assigns the per-tenant invoice number and freezes the practice/provider/client/line-items snapshot. Idempotent on non-draft invoices.
|
|
63
|
+
* @returns any Response for status 200
|
|
64
|
+
* @throws ApiError
|
|
65
|
+
*/
|
|
66
|
+
static postInvoicesByIdMarkReady({ id, }) {
|
|
67
|
+
return __request(OpenAPI, {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
url: '/invoices/{id}/mark-ready',
|
|
70
|
+
path: {
|
|
71
|
+
'id': id,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Render a draft preview PDF without finalizing
|
|
77
|
+
* Returns the rendered PDF bytes inline (application/pdf). No invoice number is assigned, no snapshot is written, nothing is uploaded to S3. The output is watermarked DRAFT so it can't be confused with a final invoice. Safe to call repeatedly. Rejected for void invoices.
|
|
78
|
+
* @throws ApiError
|
|
79
|
+
*/
|
|
80
|
+
static postInvoicesByIdPreviewPdf({ id, }) {
|
|
81
|
+
return __request(OpenAPI, {
|
|
82
|
+
method: 'POST',
|
|
83
|
+
url: '/invoices/{id}/preview-pdf',
|
|
84
|
+
path: {
|
|
85
|
+
'id': id,
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Render the FINAL invoice PDF and return a signed URL
|
|
91
|
+
* Requires the invoice to already be in a non-draft status. Renders the PDF from the frozen snapshot, uploads to S3, returns a presigned download URL (default 1h expiry). Drafts must be finalized via POST /invoices/:id/mark-ready first; use POST /invoices/:id/preview-pdf for non-committal draft previews.
|
|
92
|
+
* @returns any Response for status 200
|
|
93
|
+
* @throws ApiError
|
|
94
|
+
*/
|
|
95
|
+
static postInvoicesByIdGeneratePdf({ id, }) {
|
|
96
|
+
return __request(OpenAPI, {
|
|
97
|
+
method: 'POST',
|
|
98
|
+
url: '/invoices/{id}/generate-pdf',
|
|
99
|
+
path: {
|
|
100
|
+
'id': id,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Email the invoice PDF download link to the client
|
|
106
|
+
* Regenerates the PDF with a 24h presigned URL and emails the client (or override recipient). Transitions ready/draft → sent.
|
|
107
|
+
* @returns any Response for status 200
|
|
108
|
+
* @throws ApiError
|
|
109
|
+
*/
|
|
110
|
+
static postInvoicesByIdSendEmail({ id, requestBody, }) {
|
|
111
|
+
return __request(OpenAPI, {
|
|
112
|
+
method: 'POST',
|
|
113
|
+
url: '/invoices/{id}/send-email',
|
|
114
|
+
path: {
|
|
115
|
+
'id': id,
|
|
116
|
+
},
|
|
117
|
+
body: requestBody,
|
|
118
|
+
mediaType: 'application/json',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create a Stripe payment request from this invoice
|
|
123
|
+
* Generates a Stripe Checkout Session on the therapist's connected account for the invoice's outstanding balance. Idempotent — returns the existing open payment_request if one is already linked.
|
|
124
|
+
* @returns any Response for status 200
|
|
125
|
+
* @throws ApiError
|
|
126
|
+
*/
|
|
127
|
+
static postInvoicesByIdPaymentRequest({ id, }) {
|
|
128
|
+
return __request(OpenAPI, {
|
|
129
|
+
method: 'POST',
|
|
130
|
+
url: '/invoices/{id}/payment-request',
|
|
131
|
+
path: {
|
|
132
|
+
'id': id,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Record a non-Stripe payment against this invoice
|
|
138
|
+
* Cash, check, card_external, insurance, credit, or other. Stripe payments are recorded via webhook only and are rejected here.
|
|
139
|
+
* @returns any Response for status 200
|
|
140
|
+
* @throws ApiError
|
|
141
|
+
*/
|
|
142
|
+
static postInvoicesByIdPayments({ id, requestBody, }) {
|
|
143
|
+
return __request(OpenAPI, {
|
|
144
|
+
method: 'POST',
|
|
145
|
+
url: '/invoices/{id}/payments',
|
|
146
|
+
path: {
|
|
147
|
+
'id': id,
|
|
148
|
+
},
|
|
149
|
+
body: requestBody,
|
|
150
|
+
mediaType: 'application/json',
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Refund a manual payment on this invoice
|
|
155
|
+
* Stripe-method payments are refunded via the Stripe Dashboard / webhook — rejected here.
|
|
156
|
+
* @returns any Response for status 200
|
|
157
|
+
* @throws ApiError
|
|
158
|
+
*/
|
|
159
|
+
static patchInvoicesByIdPaymentsByPaymentId({ id, paymentId, requestBody, }) {
|
|
160
|
+
return __request(OpenAPI, {
|
|
161
|
+
method: 'PATCH',
|
|
162
|
+
url: '/invoices/{id}/payments/{paymentId}',
|
|
163
|
+
path: {
|
|
164
|
+
'id': id,
|
|
165
|
+
'paymentId': paymentId,
|
|
166
|
+
},
|
|
167
|
+
body: requestBody,
|
|
168
|
+
mediaType: 'application/json',
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=InvoicesService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvoicesService.js","sourceRoot":"","sources":["../../../src/generated/services/InvoicesService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,MAAM,OAAO,eAAe;IACxB;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,EACtB,QAAQ,EACR,MAAM,GAIT;QA2EG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE;gBACH,UAAU,EAAE,QAAQ;gBACpB,QAAQ,EAAE,MAAM;aACnB;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,kBAAkB;QAc5B,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,mBAAmB;SAC3B,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,EAC1B,EAAE,GAGL;QA0EG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,4BAA4B,CAAC,EACvC,WAAW,GAOd;QA0EG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,yBAAyB,CAAC,EACpC,EAAE,GAGL;QA0EG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,2BAA2B;YAChC,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,0BAA0B,CAAC,EACrC,EAAE,GAGL;QACG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,4BAA4B;YACjC,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,2BAA2B,CAAC,EACtC,EAAE,GAGL;QA8EG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,yBAAyB,CAAC,EACpC,EAAE,EACF,WAAW,GAMd;QA6EG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,2BAA2B;YAChC,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;YACD,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,8BAA8B,CAAC,EACzC,EAAE,GAGL;QAaG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,gCAAgC;YACrC,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,wBAAwB,CAAC,EACnC,EAAE,EACF,WAAW,GAUd;QA4BG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,yBAAyB;YAC9B,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;YACD,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,oCAAoC,CAAC,EAC/C,EAAE,EACF,SAAS,EACT,WAAW,GAQd;QAmBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,qCAAqC;YAC1C,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,WAAW,EAAE,SAAS;aACzB;YACD,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { CancelablePromise } from '../core/CancelablePromise';
|
|
2
|
+
export declare class ServicesService {
|
|
3
|
+
/**
|
|
4
|
+
* Suggest a default service for an appointment
|
|
5
|
+
* Returns the therapist's most recently used service for this client, falling back to their first active service.
|
|
6
|
+
* @returns any Response for status 200
|
|
7
|
+
* @throws ApiError
|
|
8
|
+
*/
|
|
9
|
+
static getServicesSuggestDefault({ clientId, }: {
|
|
10
|
+
clientId: string;
|
|
11
|
+
}): CancelablePromise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
data?: ({
|
|
14
|
+
id: string;
|
|
15
|
+
tenantId: string;
|
|
16
|
+
therapistId: (string | null) | null;
|
|
17
|
+
name: string;
|
|
18
|
+
billingCodeId: string;
|
|
19
|
+
cptCode: string;
|
|
20
|
+
cptDescription: string;
|
|
21
|
+
defaultFee: number;
|
|
22
|
+
defaultDurationMinutes: (string | number);
|
|
23
|
+
defaultUnits: (string | number);
|
|
24
|
+
isActive: boolean;
|
|
25
|
+
displayOrder: (string | number);
|
|
26
|
+
createdAt: string;
|
|
27
|
+
updatedAt: string;
|
|
28
|
+
} | null);
|
|
29
|
+
error?: string;
|
|
30
|
+
}>;
|
|
31
|
+
/**
|
|
32
|
+
* List services
|
|
33
|
+
* List services visible to the therapist (own + practice-wide).
|
|
34
|
+
* @returns any Response for status 200
|
|
35
|
+
* @throws ApiError
|
|
36
|
+
*/
|
|
37
|
+
static getServices({ activeOnly, }: {
|
|
38
|
+
activeOnly?: string;
|
|
39
|
+
}): CancelablePromise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
data?: Array<{
|
|
42
|
+
id: string;
|
|
43
|
+
tenantId: string;
|
|
44
|
+
therapistId: (string | null) | null;
|
|
45
|
+
name: string;
|
|
46
|
+
billingCodeId: string;
|
|
47
|
+
cptCode: string;
|
|
48
|
+
cptDescription: string;
|
|
49
|
+
defaultFee: number;
|
|
50
|
+
defaultDurationMinutes: (string | number);
|
|
51
|
+
defaultUnits: (string | number);
|
|
52
|
+
isActive: boolean;
|
|
53
|
+
displayOrder: (string | number);
|
|
54
|
+
createdAt: string;
|
|
55
|
+
updatedAt: string;
|
|
56
|
+
}>;
|
|
57
|
+
count?: number;
|
|
58
|
+
error?: string;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Create a service
|
|
62
|
+
* Create a new service mapped to a CPT4 code. Set isPracticeWide=true for tenant-wide visibility (requires MANAGE_TENANT_SETTINGS).
|
|
63
|
+
* @returns any Response for status 200
|
|
64
|
+
* @throws ApiError
|
|
65
|
+
*/
|
|
66
|
+
static postServices({ requestBody, }: {
|
|
67
|
+
requestBody: {
|
|
68
|
+
name: string;
|
|
69
|
+
billingCodeId: string;
|
|
70
|
+
defaultFee: number;
|
|
71
|
+
defaultDurationMinutes: (string | number);
|
|
72
|
+
defaultUnits?: (string | number);
|
|
73
|
+
displayOrder?: (string | number);
|
|
74
|
+
isPracticeWide?: boolean;
|
|
75
|
+
};
|
|
76
|
+
}): CancelablePromise<{
|
|
77
|
+
success: boolean;
|
|
78
|
+
data?: {
|
|
79
|
+
id: string;
|
|
80
|
+
tenantId: string;
|
|
81
|
+
therapistId: (string | null) | null;
|
|
82
|
+
name: string;
|
|
83
|
+
billingCodeId: string;
|
|
84
|
+
cptCode: string;
|
|
85
|
+
cptDescription: string;
|
|
86
|
+
defaultFee: number;
|
|
87
|
+
defaultDurationMinutes: (string | number);
|
|
88
|
+
defaultUnits: (string | number);
|
|
89
|
+
isActive: boolean;
|
|
90
|
+
displayOrder: (string | number);
|
|
91
|
+
createdAt: string;
|
|
92
|
+
updatedAt: string;
|
|
93
|
+
};
|
|
94
|
+
error?: string;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Get a service
|
|
98
|
+
* @returns any Response for status 200
|
|
99
|
+
* @throws ApiError
|
|
100
|
+
*/
|
|
101
|
+
static getServicesById({ id, }: {
|
|
102
|
+
id: string;
|
|
103
|
+
}): CancelablePromise<{
|
|
104
|
+
success: boolean;
|
|
105
|
+
data?: {
|
|
106
|
+
id: string;
|
|
107
|
+
tenantId: string;
|
|
108
|
+
therapistId: (string | null) | null;
|
|
109
|
+
name: string;
|
|
110
|
+
billingCodeId: string;
|
|
111
|
+
cptCode: string;
|
|
112
|
+
cptDescription: string;
|
|
113
|
+
defaultFee: number;
|
|
114
|
+
defaultDurationMinutes: (string | number);
|
|
115
|
+
defaultUnits: (string | number);
|
|
116
|
+
isActive: boolean;
|
|
117
|
+
displayOrder: (string | number);
|
|
118
|
+
createdAt: string;
|
|
119
|
+
updatedAt: string;
|
|
120
|
+
};
|
|
121
|
+
error?: string;
|
|
122
|
+
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Update a service
|
|
125
|
+
* @returns any Response for status 200
|
|
126
|
+
* @throws ApiError
|
|
127
|
+
*/
|
|
128
|
+
static patchServicesById({ id, requestBody, }: {
|
|
129
|
+
id: string;
|
|
130
|
+
requestBody: {
|
|
131
|
+
name?: string;
|
|
132
|
+
defaultFee?: number;
|
|
133
|
+
defaultDurationMinutes?: (string | number);
|
|
134
|
+
defaultUnits?: (string | number);
|
|
135
|
+
displayOrder?: (string | number);
|
|
136
|
+
isActive?: boolean;
|
|
137
|
+
};
|
|
138
|
+
}): CancelablePromise<{
|
|
139
|
+
success: boolean;
|
|
140
|
+
data?: {
|
|
141
|
+
id: string;
|
|
142
|
+
tenantId: string;
|
|
143
|
+
therapistId: (string | null) | null;
|
|
144
|
+
name: string;
|
|
145
|
+
billingCodeId: string;
|
|
146
|
+
cptCode: string;
|
|
147
|
+
cptDescription: string;
|
|
148
|
+
defaultFee: number;
|
|
149
|
+
defaultDurationMinutes: (string | number);
|
|
150
|
+
defaultUnits: (string | number);
|
|
151
|
+
isActive: boolean;
|
|
152
|
+
displayOrder: (string | number);
|
|
153
|
+
createdAt: string;
|
|
154
|
+
updatedAt: string;
|
|
155
|
+
};
|
|
156
|
+
error?: string;
|
|
157
|
+
}>;
|
|
158
|
+
/**
|
|
159
|
+
* Soft-delete a service
|
|
160
|
+
* Sets isActive=false; preserves existing appointments via their frozen serviceSnapshot (Phase 2).
|
|
161
|
+
* @returns any Response for status 200
|
|
162
|
+
* @throws ApiError
|
|
163
|
+
*/
|
|
164
|
+
static deleteServicesById({ id, }: {
|
|
165
|
+
id: string;
|
|
166
|
+
}): CancelablePromise<{
|
|
167
|
+
success: boolean;
|
|
168
|
+
error?: string;
|
|
169
|
+
}>;
|
|
170
|
+
/**
|
|
171
|
+
* List uninvoiced appointments for a client
|
|
172
|
+
* Returns billable appointments (serviceId set, status scheduled|completed) that aren't yet on a non-void invoice line.
|
|
173
|
+
* @returns any Response for status 200
|
|
174
|
+
* @throws ApiError
|
|
175
|
+
*/
|
|
176
|
+
static getClientsByIdUninvoicedAppointments({ id, }: {
|
|
177
|
+
id: string;
|
|
178
|
+
}): CancelablePromise<{
|
|
179
|
+
success: boolean;
|
|
180
|
+
data?: {
|
|
181
|
+
appointments: Array<{
|
|
182
|
+
id: string;
|
|
183
|
+
startTime: string;
|
|
184
|
+
endTime: string;
|
|
185
|
+
durationMinutes: (string | number);
|
|
186
|
+
location: string;
|
|
187
|
+
services: Array<{
|
|
188
|
+
id: string;
|
|
189
|
+
serviceId: (string | null) | null;
|
|
190
|
+
serviceName: string;
|
|
191
|
+
cptCode: string;
|
|
192
|
+
fee: number;
|
|
193
|
+
units: (string | number);
|
|
194
|
+
modifiers: (Array<string> | null) | null;
|
|
195
|
+
displayOrder: (string | number);
|
|
196
|
+
}>;
|
|
197
|
+
uninvoicedAmount: number;
|
|
198
|
+
}>;
|
|
199
|
+
totalUninvoicedAmount: number;
|
|
200
|
+
};
|
|
201
|
+
error?: string;
|
|
202
|
+
}>;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=ServicesService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServicesService.d.ts","sourceRoot":"","sources":["../../../src/generated/services/ServicesService.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,qBAAa,eAAe;IACxB;;;;;OAKG;WACW,yBAAyB,CAAC,EACpC,QAAQ,GACX,EAAE;QACC,QAAQ,EAAE,MAAM,CAAC;KACpB,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC;YACJ,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,sBAAsB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC;YAClB,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACrB,GAAG,IAAI,CAAC,CAAC;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IASF;;;;;OAKG;WACW,WAAW,CAAC,EACtB,UAAU,GACb,EAAE;QACC,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,KAAK,CAAC;YACT,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,sBAAsB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC;YAClB,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IASF;;;;;OAKG;WACW,YAAY,CAAC,EACvB,WAAW,GACd,EAAE;QACC,WAAW,EAAE;YACT,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE,MAAM,CAAC;YACtB,UAAU,EAAE,MAAM,CAAC;YACnB,sBAAsB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1C,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YACjC,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YACjC,cAAc,CAAC,EAAE,OAAO,CAAC;SAC5B,CAAC;KACL,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACH,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,sBAAsB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC;YAClB,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAQF;;;;OAIG;WACW,eAAe,CAAC,EAC1B,EAAE,GACL,EAAE;QACC,EAAE,EAAE,MAAM,CAAC;KACd,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACH,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,sBAAsB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC;YAClB,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IASF;;;;OAIG;WACW,iBAAiB,CAAC,EAC5B,EAAE,EACF,WAAW,GACd,EAAE;QACC,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE;YACT,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,sBAAsB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC3C,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YACjC,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;SACtB,CAAC;KACL,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACH,EAAE,EAAE,MAAM,CAAC;YACX,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YACpC,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,sBAAsB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAC1C,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC;YAClB,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAWF;;;;;OAKG;WACW,kBAAkB,CAAC,EAC7B,EAAE,GACL,EAAE;QACC,EAAE,EAAE,MAAM,CAAC;KACd,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IASF;;;;;OAKG;WACW,oCAAoC,CAAC,EAC/C,EAAE,GACL,EAAE;QACC,EAAE,EAAE,MAAM,CAAC;KACd,GAAG,iBAAiB,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACH,YAAY,EAAE,KAAK,CAAC;gBAChB,EAAE,EAAE,MAAM,CAAC;gBACX,SAAS,EAAE,MAAM,CAAC;gBAClB,OAAO,EAAE,MAAM,CAAC;gBAChB,eAAe,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;gBACnC,QAAQ,EAAE,MAAM,CAAC;gBACjB,QAAQ,EAAE,KAAK,CAAC;oBACZ,EAAE,EAAE,MAAM,CAAC;oBACX,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBAClC,WAAW,EAAE,MAAM,CAAC;oBACpB,OAAO,EAAE,MAAM,CAAC;oBAChB,GAAG,EAAE,MAAM,CAAC;oBACZ,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;oBACzB,SAAS,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACzC,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;iBACnC,CAAC,CAAC;gBACH,gBAAgB,EAAE,MAAM,CAAC;aAC5B,CAAC,CAAC;YACH,qBAAqB,EAAE,MAAM,CAAC;SACjC,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CASL"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { OpenAPI } from '../core/OpenAPI';
|
|
2
|
+
import { request as __request } from '../core/request';
|
|
3
|
+
export class ServicesService {
|
|
4
|
+
/**
|
|
5
|
+
* Suggest a default service for an appointment
|
|
6
|
+
* Returns the therapist's most recently used service for this client, falling back to their first active service.
|
|
7
|
+
* @returns any Response for status 200
|
|
8
|
+
* @throws ApiError
|
|
9
|
+
*/
|
|
10
|
+
static getServicesSuggestDefault({ clientId, }) {
|
|
11
|
+
return __request(OpenAPI, {
|
|
12
|
+
method: 'GET',
|
|
13
|
+
url: '/services/suggest-default',
|
|
14
|
+
query: {
|
|
15
|
+
'clientId': clientId,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* List services
|
|
21
|
+
* List services visible to the therapist (own + practice-wide).
|
|
22
|
+
* @returns any Response for status 200
|
|
23
|
+
* @throws ApiError
|
|
24
|
+
*/
|
|
25
|
+
static getServices({ activeOnly, }) {
|
|
26
|
+
return __request(OpenAPI, {
|
|
27
|
+
method: 'GET',
|
|
28
|
+
url: '/services',
|
|
29
|
+
query: {
|
|
30
|
+
'activeOnly': activeOnly,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a service
|
|
36
|
+
* Create a new service mapped to a CPT4 code. Set isPracticeWide=true for tenant-wide visibility (requires MANAGE_TENANT_SETTINGS).
|
|
37
|
+
* @returns any Response for status 200
|
|
38
|
+
* @throws ApiError
|
|
39
|
+
*/
|
|
40
|
+
static postServices({ requestBody, }) {
|
|
41
|
+
return __request(OpenAPI, {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
url: '/services',
|
|
44
|
+
body: requestBody,
|
|
45
|
+
mediaType: 'application/json',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get a service
|
|
50
|
+
* @returns any Response for status 200
|
|
51
|
+
* @throws ApiError
|
|
52
|
+
*/
|
|
53
|
+
static getServicesById({ id, }) {
|
|
54
|
+
return __request(OpenAPI, {
|
|
55
|
+
method: 'GET',
|
|
56
|
+
url: '/services/{id}',
|
|
57
|
+
path: {
|
|
58
|
+
'id': id,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Update a service
|
|
64
|
+
* @returns any Response for status 200
|
|
65
|
+
* @throws ApiError
|
|
66
|
+
*/
|
|
67
|
+
static patchServicesById({ id, requestBody, }) {
|
|
68
|
+
return __request(OpenAPI, {
|
|
69
|
+
method: 'PATCH',
|
|
70
|
+
url: '/services/{id}',
|
|
71
|
+
path: {
|
|
72
|
+
'id': id,
|
|
73
|
+
},
|
|
74
|
+
body: requestBody,
|
|
75
|
+
mediaType: 'application/json',
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Soft-delete a service
|
|
80
|
+
* Sets isActive=false; preserves existing appointments via their frozen serviceSnapshot (Phase 2).
|
|
81
|
+
* @returns any Response for status 200
|
|
82
|
+
* @throws ApiError
|
|
83
|
+
*/
|
|
84
|
+
static deleteServicesById({ id, }) {
|
|
85
|
+
return __request(OpenAPI, {
|
|
86
|
+
method: 'DELETE',
|
|
87
|
+
url: '/services/{id}',
|
|
88
|
+
path: {
|
|
89
|
+
'id': id,
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* List uninvoiced appointments for a client
|
|
95
|
+
* Returns billable appointments (serviceId set, status scheduled|completed) that aren't yet on a non-void invoice line.
|
|
96
|
+
* @returns any Response for status 200
|
|
97
|
+
* @throws ApiError
|
|
98
|
+
*/
|
|
99
|
+
static getClientsByIdUninvoicedAppointments({ id, }) {
|
|
100
|
+
return __request(OpenAPI, {
|
|
101
|
+
method: 'GET',
|
|
102
|
+
url: '/clients/{id}/uninvoiced-appointments',
|
|
103
|
+
path: {
|
|
104
|
+
'id': id,
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=ServicesService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServicesService.js","sourceRoot":"","sources":["../../../src/generated/services/ServicesService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,MAAM,OAAO,eAAe;IACxB;;;;;OAKG;IACI,MAAM,CAAC,yBAAyB,CAAC,EACpC,QAAQ,GAGX;QAoBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,2BAA2B;YAChC,KAAK,EAAE;gBACH,UAAU,EAAE,QAAQ;aACvB;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,EACtB,UAAU,GAGb;QAqBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE;gBACH,YAAY,EAAE,UAAU;aAC3B;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,YAAY,CAAC,EACvB,WAAW,GAWd;QAoBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,WAAW;YAChB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,EAC1B,EAAE,GAGL;QAoBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,EAC5B,EAAE,EACF,WAAW,GAWd;QAoBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;YACD,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,kBAAkB,CAAC,EAC7B,EAAE,GAGL;QAIG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;IACD;;;;;OAKG;IACI,MAAM,CAAC,oCAAoC,CAAC,EAC/C,EAAE,GAGL;QAyBG,OAAO,SAAS,CAAC,OAAO,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,uCAAuC;YAC5C,IAAI,EAAE;gBACF,IAAI,EAAE,EAAE;aACX;SACJ,CAAC,CAAC;IACP,CAAC;CACJ"}
|