@viridial/shared 1.0.38 → 1.0.40
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/api/plan.service.d.ts +35 -0
- package/dist/api/plan.service.d.ts.map +1 -0
- package/dist/api/plan.service.js +70 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/types/billing.types.d.ts +33 -2
- package/dist/types/billing.types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Plan, PlanCreate, PlanUpdate } from '../types/billing.types';
|
|
2
|
+
/**
|
|
3
|
+
* Service de gestion des plans d'abonnement
|
|
4
|
+
*/
|
|
5
|
+
export declare const planService: {
|
|
6
|
+
/**
|
|
7
|
+
* Récupérer tous les plans
|
|
8
|
+
*/
|
|
9
|
+
getAll(activeOnly?: boolean): Promise<Plan[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Récupérer un plan par ID
|
|
12
|
+
*/
|
|
13
|
+
getById(id: number): Promise<Plan>;
|
|
14
|
+
/**
|
|
15
|
+
* Récupérer un plan par nom
|
|
16
|
+
*/
|
|
17
|
+
getByName(name: string): Promise<Plan>;
|
|
18
|
+
/**
|
|
19
|
+
* Récupérer le plan par défaut
|
|
20
|
+
*/
|
|
21
|
+
getDefault(): Promise<Plan>;
|
|
22
|
+
/**
|
|
23
|
+
* Créer un plan
|
|
24
|
+
*/
|
|
25
|
+
create(data: PlanCreate): Promise<Plan>;
|
|
26
|
+
/**
|
|
27
|
+
* Mettre à jour un plan
|
|
28
|
+
*/
|
|
29
|
+
update(id: number, data: PlanUpdate): Promise<Plan>;
|
|
30
|
+
/**
|
|
31
|
+
* Supprimer un plan
|
|
32
|
+
*/
|
|
33
|
+
delete(id: number): Promise<void>;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=plan.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.service.d.ts","sourceRoot":"","sources":["../../api/plan.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE1E;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;wBACuB,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAYnD;;OAEG;gBACe,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC;;OAEG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;kBACiB,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;iBACgB,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C;;OAEG;eACc,MAAM,QAAQ,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD;;OAEG;eACc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { httpClient } from './http.client';
|
|
2
|
+
import { API_ENDPOINTS } from '../constants/api.constants';
|
|
3
|
+
/**
|
|
4
|
+
* Service de gestion des plans d'abonnement
|
|
5
|
+
*/
|
|
6
|
+
export const planService = {
|
|
7
|
+
/**
|
|
8
|
+
* Récupérer tous les plans
|
|
9
|
+
*/
|
|
10
|
+
async getAll(activeOnly) {
|
|
11
|
+
const response = await httpClient.get(API_ENDPOINTS.BILLING.PLANS.BASE);
|
|
12
|
+
let plans = response.data || [];
|
|
13
|
+
// Filtrer par actif si demandé
|
|
14
|
+
if (activeOnly) {
|
|
15
|
+
plans = plans.filter(plan => plan.active);
|
|
16
|
+
}
|
|
17
|
+
return plans;
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Récupérer un plan par ID
|
|
21
|
+
*/
|
|
22
|
+
async getById(id) {
|
|
23
|
+
const response = await httpClient.get(API_ENDPOINTS.BILLING.PLANS.BY_ID(id));
|
|
24
|
+
return response.data;
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Récupérer un plan par nom
|
|
28
|
+
*/
|
|
29
|
+
async getByName(name) {
|
|
30
|
+
const response = await httpClient.get(API_ENDPOINTS.BILLING.PLANS.BY_NAME(name));
|
|
31
|
+
return response.data;
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Récupérer le plan par défaut
|
|
35
|
+
*/
|
|
36
|
+
async getDefault() {
|
|
37
|
+
const response = await httpClient.get(API_ENDPOINTS.BILLING.PLANS.DEFAULT);
|
|
38
|
+
return response.data;
|
|
39
|
+
},
|
|
40
|
+
/**
|
|
41
|
+
* Créer un plan
|
|
42
|
+
*/
|
|
43
|
+
async create(data) {
|
|
44
|
+
// Convertir features en JSON string si c'est un tableau
|
|
45
|
+
const planData = { ...data };
|
|
46
|
+
if (Array.isArray(planData.features)) {
|
|
47
|
+
planData.features = JSON.stringify(planData.features);
|
|
48
|
+
}
|
|
49
|
+
const response = await httpClient.post(API_ENDPOINTS.BILLING.PLANS.BASE, planData);
|
|
50
|
+
return response.data;
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* Mettre à jour un plan
|
|
54
|
+
*/
|
|
55
|
+
async update(id, data) {
|
|
56
|
+
// Convertir features en JSON string si c'est un tableau
|
|
57
|
+
const planData = { ...data };
|
|
58
|
+
if (Array.isArray(planData.features)) {
|
|
59
|
+
planData.features = JSON.stringify(planData.features);
|
|
60
|
+
}
|
|
61
|
+
const response = await httpClient.put(API_ENDPOINTS.BILLING.PLANS.BY_ID(id), planData);
|
|
62
|
+
return response.data;
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Supprimer un plan
|
|
66
|
+
*/
|
|
67
|
+
async delete(id) {
|
|
68
|
+
await httpClient.delete(API_ENDPOINTS.BILLING.PLANS.BY_ID(id));
|
|
69
|
+
}
|
|
70
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { organizationService } from './api/organization.service';
|
|
|
9
9
|
export { documentService } from './api/document.service';
|
|
10
10
|
export { statsService } from './api/stats.service';
|
|
11
11
|
export { billingService } from './api/billing.service';
|
|
12
|
+
export { planService } from './api/plan.service';
|
|
12
13
|
export { notificationService } from './api/notification.service';
|
|
13
14
|
export { auditService } from './api/audit.service';
|
|
14
15
|
export type { AuditLog, AuditLogSearchParams, AuditLogPage } from './api/audit.service';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG/C,mBAAmB,mBAAmB,CAAA;AACtC,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACX,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG/C,mBAAmB,mBAAmB,CAAA;AACtC,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,gCAAgC,CAAA;AACnD,mBAAmB,oBAAoB,CAAA;AACvC,mBAAmB,wBAAwB,CAAA;AAC3C,mBAAmB,qBAAqB,CAAA;AACxC,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,4BAA4B,CAAA;AAC/C,mBAAmB,wBAAwB,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAGvE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { organizationService } from './api/organization.service';
|
|
|
10
10
|
export { documentService } from './api/document.service';
|
|
11
11
|
export { statsService } from './api/stats.service';
|
|
12
12
|
export { billingService } from './api/billing.service';
|
|
13
|
+
export { planService } from './api/plan.service';
|
|
13
14
|
export { notificationService } from './api/notification.service';
|
|
14
15
|
export { auditService } from './api/audit.service';
|
|
15
16
|
export { workflowService } from './api/workflow.service';
|
|
@@ -39,10 +39,41 @@ export interface Plan {
|
|
|
39
39
|
description?: string;
|
|
40
40
|
price: number;
|
|
41
41
|
currency: string;
|
|
42
|
-
|
|
42
|
+
billingPeriod: 'MONTHLY' | 'YEARLY';
|
|
43
|
+
maxProperties?: number;
|
|
44
|
+
maxUsers?: number;
|
|
45
|
+
maxStorageGb?: number;
|
|
43
46
|
features?: string[] | string;
|
|
44
|
-
quotas?: Record<string, number>;
|
|
45
47
|
active: boolean;
|
|
48
|
+
isDefault?: boolean;
|
|
49
|
+
createdAt?: string;
|
|
50
|
+
updatedAt?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface PlanCreate {
|
|
53
|
+
name: string;
|
|
54
|
+
description?: string;
|
|
55
|
+
price: number;
|
|
56
|
+
currency?: string;
|
|
57
|
+
billingPeriod?: 'MONTHLY' | 'YEARLY';
|
|
58
|
+
maxProperties?: number;
|
|
59
|
+
maxUsers?: number;
|
|
60
|
+
maxStorageGb?: number;
|
|
61
|
+
features?: string[] | string;
|
|
62
|
+
active?: boolean;
|
|
63
|
+
isDefault?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface PlanUpdate {
|
|
66
|
+
name?: string;
|
|
67
|
+
description?: string;
|
|
68
|
+
price?: number;
|
|
69
|
+
currency?: string;
|
|
70
|
+
billingPeriod?: 'MONTHLY' | 'YEARLY';
|
|
71
|
+
maxProperties?: number;
|
|
72
|
+
maxUsers?: number;
|
|
73
|
+
maxStorageGb?: number;
|
|
74
|
+
features?: string[] | string;
|
|
75
|
+
active?: boolean;
|
|
76
|
+
isDefault?: boolean;
|
|
46
77
|
}
|
|
47
78
|
export interface BillingStats {
|
|
48
79
|
activeSubscriptions: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.types.d.ts","sourceRoot":"","sources":["../../types/billing.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;IACtD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,SAAS,GAAG,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"billing.types.d.ts","sourceRoot":"","sources":["../../types/billing.types.ts"],"names":[],"mappings":"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"}
|