@blackcode_sa/metaestetics-api 1.15.8 → 1.15.10
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/admin/index.d.mts +16 -1
- package/dist/admin/index.d.ts +16 -1
- package/dist/index.d.mts +166 -2
- package/dist/index.d.ts +166 -2
- package/dist/index.js +1947 -1505
- package/dist/index.mjs +1633 -1197
- package/package.json +1 -1
- package/src/config/index.ts +8 -0
- package/src/config/tiers.config.ts +233 -0
- package/src/services/appointment/appointment.service.ts +14 -0
- package/src/services/clinic/clinic.service.ts +7 -0
- package/src/services/index.ts +1 -0
- package/src/services/patient/patientRequirements.service.ts +24 -0
- package/src/services/practitioner/practitioner.service.ts +19 -0
- package/src/services/procedure/procedure.service.ts +7 -0
- package/src/services/tier-enforcement.ts +290 -0
- package/src/types/clinic/index.ts +18 -0
- package/src/types/clinic/rbac.types.ts +62 -0
|
@@ -173,9 +173,15 @@ export interface AdminInfo {
|
|
|
173
173
|
*/
|
|
174
174
|
export enum SubscriptionModel {
|
|
175
175
|
NO_SUBSCRIPTION = 'no_subscription',
|
|
176
|
+
/** @deprecated Use FREE, CONNECT, or PRO instead */
|
|
176
177
|
BASIC = 'basic',
|
|
178
|
+
/** @deprecated Use FREE, CONNECT, or PRO instead */
|
|
177
179
|
PREMIUM = 'premium',
|
|
180
|
+
/** @deprecated Use FREE, CONNECT, or PRO instead */
|
|
178
181
|
ENTERPRISE = 'enterprise',
|
|
182
|
+
FREE = 'free',
|
|
183
|
+
CONNECT = 'connect',
|
|
184
|
+
PRO = 'pro',
|
|
179
185
|
}
|
|
180
186
|
|
|
181
187
|
/**
|
|
@@ -202,6 +208,8 @@ export interface BillingInfo {
|
|
|
202
208
|
currentPeriodStart: Timestamp | null;
|
|
203
209
|
currentPeriodEnd: Timestamp | null;
|
|
204
210
|
updatedAt: Timestamp;
|
|
211
|
+
seatCount?: number;
|
|
212
|
+
seatPriceId?: string;
|
|
205
213
|
}
|
|
206
214
|
|
|
207
215
|
/**
|
|
@@ -298,6 +306,12 @@ export interface ClinicGroup {
|
|
|
298
306
|
completed?: boolean;
|
|
299
307
|
step?: number;
|
|
300
308
|
};
|
|
309
|
+
featureTrials?: {
|
|
310
|
+
analytics?: {
|
|
311
|
+
startedAt: Timestamp;
|
|
312
|
+
durationDays: number;
|
|
313
|
+
};
|
|
314
|
+
};
|
|
301
315
|
}
|
|
302
316
|
|
|
303
317
|
/**
|
|
@@ -381,6 +395,7 @@ export interface Clinic {
|
|
|
381
395
|
isActive: boolean;
|
|
382
396
|
isVerified: boolean;
|
|
383
397
|
logo?: MediaResource | null;
|
|
398
|
+
acceptingBookings?: boolean;
|
|
384
399
|
}
|
|
385
400
|
|
|
386
401
|
/**
|
|
@@ -496,3 +511,6 @@ export interface ClinicTags {
|
|
|
496
511
|
|
|
497
512
|
// Export practitioner invite types
|
|
498
513
|
export * from './practitioner-invite.types';
|
|
514
|
+
|
|
515
|
+
// Export RBAC types
|
|
516
|
+
export * from './rbac.types';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RBAC (Role-Based Access Control) types for clinic staff management
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Roles that can be assigned to clinic staff members
|
|
7
|
+
*/
|
|
8
|
+
export enum ClinicRole {
|
|
9
|
+
OWNER = 'owner',
|
|
10
|
+
ADMIN = 'admin',
|
|
11
|
+
DOCTOR = 'doctor',
|
|
12
|
+
RECEPTIONIST = 'receptionist',
|
|
13
|
+
ASSISTANT = 'assistant',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Represents a staff member within a clinic group
|
|
18
|
+
*/
|
|
19
|
+
export interface ClinicStaffMember {
|
|
20
|
+
id?: string;
|
|
21
|
+
userId: string;
|
|
22
|
+
clinicGroupId: string;
|
|
23
|
+
clinicId?: string;
|
|
24
|
+
role: ClinicRole;
|
|
25
|
+
permissions: Record<string, boolean>;
|
|
26
|
+
isActive: boolean;
|
|
27
|
+
createdAt?: any;
|
|
28
|
+
updatedAt?: any;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Configuration for default permissions assigned to a role
|
|
33
|
+
*/
|
|
34
|
+
export interface RolePermissionConfig {
|
|
35
|
+
clinicGroupId?: string;
|
|
36
|
+
role: ClinicRole;
|
|
37
|
+
permissions: Record<string, boolean>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Usage limits for a given subscription tier.
|
|
42
|
+
* All features are available on every tier — only usage is capped.
|
|
43
|
+
* -1 means unlimited.
|
|
44
|
+
*/
|
|
45
|
+
export interface TierLimits {
|
|
46
|
+
maxProviders: number;
|
|
47
|
+
maxProcedures: number;
|
|
48
|
+
maxAppointmentsPerMonth: number;
|
|
49
|
+
maxMessagesPerMonth: number;
|
|
50
|
+
maxStaff: number;
|
|
51
|
+
maxBranches: number;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Configuration for a subscription tier.
|
|
56
|
+
* Every tier has access to all features — tiers differ only in usage limits.
|
|
57
|
+
*/
|
|
58
|
+
export interface TierConfig {
|
|
59
|
+
tier: string;
|
|
60
|
+
name: string;
|
|
61
|
+
limits: TierLimits;
|
|
62
|
+
}
|