@viridial/shared 1.0.38 → 1.0.39

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.
@@ -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
+ };
@@ -39,10 +39,41 @@ export interface Plan {
39
39
  description?: string;
40
40
  price: number;
41
41
  currency: string;
42
- billingCycle: 'MONTHLY' | 'YEARLY';
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;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB"}
1
+ {"version":3,"file":"billing.types.d.ts","sourceRoot":"","sources":["../../types/billing.types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viridial/shared",
3
- "version": "1.0.38",
3
+ "version": "1.0.39",
4
4
  "type": "module",
5
5
  "description": "Shared modules for Real Estate frontend applications - Vue 3, TypeScript, Pinia, Axios",
6
6
  "main": "./dist/index.js",