tychat-contracts 1.6.15 → 1.6.19

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.
@@ -1,5 +1,6 @@
1
1
  import { TenantAiTokenStateDto } from '../tenants/tenant-ai-token-state.dto';
2
2
  import { EffectiveAppModulePolicyDto } from './app-module-policy.dto';
3
+ import { ExtraLimitsChargeBreakdownDto } from './extra-limits-charge-breakdown.dto';
3
4
  import { PlanSummaryDto } from './plan-summary.dto';
4
5
  import { TenantLimitsSummaryDto } from './tenant-limits-summary.dto';
5
6
  import { TenantStorageUsageSummaryDto } from './tenant-storage-usage-summary.dto';
@@ -20,6 +21,8 @@ export declare class ConfigurationTenantSummaryDto {
20
21
  conversationEffectiveLimitBytes?: string;
21
22
  clinicEffectiveLimitBytes?: string;
22
23
  extraStorageCharge?: number;
24
+ extraLimitsCharge?: number;
25
+ extraLimitsChargeBreakdown?: ExtraLimitsChargeBreakdownDto;
23
26
  effectivePlanPrice?: number;
24
27
  appModules?: EffectiveAppModulePolicyDto[];
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-tenant-summary.dto.d.ts","sourceRoot":"","sources":["../../src/configurations/configuration-tenant-summary.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAElF;;GAEG;AACH,qBAAa,6BAA6B;IAExC,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAO9B,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAO5B,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAOtC,YAAY,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAOlD,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAG5C,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAGzC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAKnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAM5B,UAAU,CAAC,EAAE,2BAA2B,EAAE,CAAC;CAC5C"}
1
+ {"version":3,"file":"configuration-tenant-summary.dto.d.ts","sourceRoot":"","sources":["../../src/configurations/configuration-tenant-summary.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAElF;;GAEG;AACH,qBAAa,6BAA6B;IAExC,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAO9B,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAO5B,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAOtC,YAAY,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAOlD,YAAY,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAG5C,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAGzC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAKnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAK5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAM3B,0BAA0B,CAAC,EAAE,6BAA6B,CAAC;IAK3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAM5B,UAAU,CAAC,EAAE,2BAA2B,EAAE,CAAC;CAC5C"}
@@ -13,6 +13,7 @@ exports.ConfigurationTenantSummaryDto = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
14
  const tenant_ai_token_state_dto_1 = require("../tenants/tenant-ai-token-state.dto");
15
15
  const app_module_policy_dto_1 = require("./app-module-policy.dto");
16
+ const extra_limits_charge_breakdown_dto_1 = require("./extra-limits-charge-breakdown.dto");
16
17
  const plan_summary_dto_1 = require("./plan-summary.dto");
17
18
  const tenant_limits_summary_dto_1 = require("./tenant-limits-summary.dto");
18
19
  const tenant_storage_usage_summary_dto_1 = require("./tenant-storage-usage-summary.dto");
@@ -33,6 +34,8 @@ class ConfigurationTenantSummaryDto {
33
34
  conversationEffectiveLimitBytes;
34
35
  clinicEffectiveLimitBytes;
35
36
  extraStorageCharge;
37
+ extraLimitsCharge;
38
+ extraLimitsChargeBreakdown;
36
39
  effectivePlanPrice;
37
40
  appModules;
38
41
  }
@@ -103,13 +106,26 @@ __decorate([
103
106
  ], ConfigurationTenantSummaryDto.prototype, "clinicEffectiveLimitBytes", void 0);
104
107
  __decorate([
105
108
  (0, swagger_1.ApiPropertyOptional)({
106
- description: 'Valor mensal estimado pelos GB extras de armazenamento (soma dos dois tipos)',
109
+ description: 'Valor mensal estimado pelos extras de armazenamento (conversas + clínico)',
107
110
  }),
108
111
  __metadata("design:type", Number)
109
112
  ], ConfigurationTenantSummaryDto.prototype, "extraStorageCharge", void 0);
110
113
  __decorate([
111
114
  (0, swagger_1.ApiPropertyOptional)({
112
- description: 'Preço base do plano + extraStorageCharge',
115
+ description: 'Valor mensal estimado pelos extras de limites (sem armazenamento)',
116
+ }),
117
+ __metadata("design:type", Number)
118
+ ], ConfigurationTenantSummaryDto.prototype, "extraLimitsCharge", void 0);
119
+ __decorate([
120
+ (0, swagger_1.ApiPropertyOptional)({
121
+ description: 'Detalhamento da cobrança mensal por tipo de limite extra',
122
+ type: () => extra_limits_charge_breakdown_dto_1.ExtraLimitsChargeBreakdownDto,
123
+ }),
124
+ __metadata("design:type", extra_limits_charge_breakdown_dto_1.ExtraLimitsChargeBreakdownDto)
125
+ ], ConfigurationTenantSummaryDto.prototype, "extraLimitsChargeBreakdown", void 0);
126
+ __decorate([
127
+ (0, swagger_1.ApiPropertyOptional)({
128
+ description: 'Preço base do plano + extras (limites e armazenamento)',
113
129
  }),
114
130
  __metadata("design:type", Number)
115
131
  ], ConfigurationTenantSummaryDto.prototype, "effectivePlanPrice", void 0);
@@ -0,0 +1,15 @@
1
+ export declare class ExtraLimitsChargeBreakdownDto {
2
+ patients: number;
3
+ doctors: number;
4
+ attendants: number;
5
+ administrators: number;
6
+ procedures: number;
7
+ whatsappInstances: number;
8
+ units: number;
9
+ monthlyLegalTerms: number;
10
+ concurrentSessions: number;
11
+ conversationStorage: number;
12
+ clinicStorage: number;
13
+ total: number;
14
+ }
15
+ //# sourceMappingURL=extra-limits-charge-breakdown.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extra-limits-charge-breakdown.dto.d.ts","sourceRoot":"","sources":["../../src/configurations/extra-limits-charge-breakdown.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,6BAA6B;IAExC,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,UAAU,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IAGvB,UAAU,EAAE,MAAM,CAAC;IAGnB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,KAAK,EAAE,MAAM,CAAC;IAGd,iBAAiB,EAAE,MAAM,CAAC;IAG1B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,mBAAmB,EAAE,MAAM,CAAC;IAG5B,aAAa,EAAE,MAAM,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ExtraLimitsChargeBreakdownDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ class ExtraLimitsChargeBreakdownDto {
15
+ patients;
16
+ doctors;
17
+ attendants;
18
+ administrators;
19
+ procedures;
20
+ whatsappInstances;
21
+ units;
22
+ monthlyLegalTerms;
23
+ concurrentSessions;
24
+ conversationStorage;
25
+ clinicStorage;
26
+ total;
27
+ }
28
+ exports.ExtraLimitsChargeBreakdownDto = ExtraLimitsChargeBreakdownDto;
29
+ __decorate([
30
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por pacientes extras', example: 0 }),
31
+ __metadata("design:type", Number)
32
+ ], ExtraLimitsChargeBreakdownDto.prototype, "patients", void 0);
33
+ __decorate([
34
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por médicos extras', example: 0 }),
35
+ __metadata("design:type", Number)
36
+ ], ExtraLimitsChargeBreakdownDto.prototype, "doctors", void 0);
37
+ __decorate([
38
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por atendentes extras', example: 0 }),
39
+ __metadata("design:type", Number)
40
+ ], ExtraLimitsChargeBreakdownDto.prototype, "attendants", void 0);
41
+ __decorate([
42
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por administradores extras', example: 0 }),
43
+ __metadata("design:type", Number)
44
+ ], ExtraLimitsChargeBreakdownDto.prototype, "administrators", void 0);
45
+ __decorate([
46
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por procedimentos extras', example: 0 }),
47
+ __metadata("design:type", Number)
48
+ ], ExtraLimitsChargeBreakdownDto.prototype, "procedures", void 0);
49
+ __decorate([
50
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por instâncias WhatsApp extras', example: 0 }),
51
+ __metadata("design:type", Number)
52
+ ], ExtraLimitsChargeBreakdownDto.prototype, "whatsappInstances", void 0);
53
+ __decorate([
54
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por unidades extras', example: 0 }),
55
+ __metadata("design:type", Number)
56
+ ], ExtraLimitsChargeBreakdownDto.prototype, "units", void 0);
57
+ __decorate([
58
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por termos jurídicos mensais extras', example: 0 }),
59
+ __metadata("design:type", Number)
60
+ ], ExtraLimitsChargeBreakdownDto.prototype, "monthlyLegalTerms", void 0);
61
+ __decorate([
62
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por sessões simultâneas extras por conta', example: 0 }),
63
+ __metadata("design:type", Number)
64
+ ], ExtraLimitsChargeBreakdownDto.prototype, "concurrentSessions", void 0);
65
+ __decorate([
66
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por armazenamento extra de conversas', example: 0 }),
67
+ __metadata("design:type", Number)
68
+ ], ExtraLimitsChargeBreakdownDto.prototype, "conversationStorage", void 0);
69
+ __decorate([
70
+ (0, swagger_1.ApiProperty)({ description: 'Cobrança por armazenamento extra clínico', example: 0 }),
71
+ __metadata("design:type", Number)
72
+ ], ExtraLimitsChargeBreakdownDto.prototype, "clinicStorage", void 0);
73
+ __decorate([
74
+ (0, swagger_1.ApiProperty)({ description: 'Soma total das cobranças de extras', example: 0 }),
75
+ __metadata("design:type", Number)
76
+ ], ExtraLimitsChargeBreakdownDto.prototype, "total", void 0);
@@ -9,6 +9,7 @@ export * from './app-module-policy.dto';
9
9
  export * from './plan-summary.dto';
10
10
  export * from './tenant-limits-summary.dto';
11
11
  export * from './tenant-storage-usage-summary.dto';
12
+ export * from './extra-limits-charge-breakdown.dto';
12
13
  export * from './configuration-tenant-summary.dto';
13
14
  export * from './clinic-configuration-with-tenant.dto';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configurations/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configurations/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC"}
@@ -25,5 +25,6 @@ __exportStar(require("./app-module-policy.dto"), exports);
25
25
  __exportStar(require("./plan-summary.dto"), exports);
26
26
  __exportStar(require("./tenant-limits-summary.dto"), exports);
27
27
  __exportStar(require("./tenant-storage-usage-summary.dto"), exports);
28
+ __exportStar(require("./extra-limits-charge-breakdown.dto"), exports);
28
29
  __exportStar(require("./configuration-tenant-summary.dto"), exports);
29
30
  __exportStar(require("./clinic-configuration-with-tenant.dto"), exports);
@@ -22,6 +22,15 @@ export declare class PlanSummaryDto {
22
22
  clinicStorageGb: number;
23
23
  conversationExtraPricePerGb: number;
24
24
  clinicExtraPricePerGb: number;
25
+ patientsExtraPrice: number;
26
+ doctorsExtraPrice: number;
27
+ attendantsExtraPrice: number;
28
+ administratorsExtraPrice: number;
29
+ proceduresExtraPrice: number;
30
+ whatsappInstancesExtraPrice: number;
31
+ unitsExtraPrice: number;
32
+ monthlyLegalTermsExtraPrice: number;
33
+ concurrentSessionsExtraPrice: number;
25
34
  createdAt?: Date;
26
35
  updatedAt?: Date;
27
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plan-summary.dto.d.ts","sourceRoot":"","sources":["../../src/configurations/plan-summary.dto.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,cAAc;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAG9B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IAGtB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,aAAa,EAAE,MAAM,CAAC;IAMtB,+BAA+B,EAAE,MAAM,CAAC;IAOxC,gCAAgC,EAAE,YAAY,GAAG,YAAY,CAAC;IAG9D,eAAe,EAAE,MAAM,CAAC;IAGxB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,eAAe,EAAE,MAAM,CAAC;IAGxB,2BAA2B,EAAE,MAAM,CAAC;IAGpC,qBAAqB,EAAE,MAAM,CAAC;IAG9B,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
1
+ {"version":3,"file":"plan-summary.dto.d.ts","sourceRoot":"","sources":["../../src/configurations/plan-summary.dto.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,cAAc;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,cAAc,EAAE,MAAM,CAAC;IAGvB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAG9B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,EAAE,MAAM,CAAC;IAGnB,aAAa,EAAE,MAAM,CAAC;IAGtB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,aAAa,EAAE,MAAM,CAAC;IAMtB,+BAA+B,EAAE,MAAM,CAAC;IAOxC,gCAAgC,EAAE,YAAY,GAAG,YAAY,CAAC;IAG9D,eAAe,EAAE,MAAM,CAAC;IAGxB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,qBAAqB,EAAE,MAAM,CAAC;IAG9B,eAAe,EAAE,MAAM,CAAC;IAGxB,2BAA2B,EAAE,MAAM,CAAC;IAGpC,qBAAqB,EAAE,MAAM,CAAC;IAG9B,kBAAkB,EAAE,MAAM,CAAC;IAG3B,iBAAiB,EAAE,MAAM,CAAC;IAG1B,oBAAoB,EAAE,MAAM,CAAC;IAG7B,wBAAwB,EAAE,MAAM,CAAC;IAGjC,oBAAoB,EAAE,MAAM,CAAC;IAG7B,2BAA2B,EAAE,MAAM,CAAC;IAGpC,eAAe,EAAE,MAAM,CAAC;IAGxB,2BAA2B,EAAE,MAAM,CAAC;IAGpC,4BAA4B,EAAE,MAAM,CAAC;IAGrC,SAAS,CAAC,EAAE,IAAI,CAAC;IAGjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
@@ -35,6 +35,15 @@ class PlanSummaryDto {
35
35
  clinicStorageGb;
36
36
  conversationExtraPricePerGb;
37
37
  clinicExtraPricePerGb;
38
+ patientsExtraPrice;
39
+ doctorsExtraPrice;
40
+ attendantsExtraPrice;
41
+ administratorsExtraPrice;
42
+ proceduresExtraPrice;
43
+ whatsappInstancesExtraPrice;
44
+ unitsExtraPrice;
45
+ monthlyLegalTermsExtraPrice;
46
+ concurrentSessionsExtraPrice;
38
47
  createdAt;
39
48
  updatedAt;
40
49
  }
@@ -126,6 +135,42 @@ __decorate([
126
135
  (0, swagger_1.ApiProperty)({ description: 'Preço unitário por GB extra clínico', example: 0 }),
127
136
  __metadata("design:type", Number)
128
137
  ], PlanSummaryDto.prototype, "clinicExtraPricePerGb", void 0);
138
+ __decorate([
139
+ (0, swagger_1.ApiProperty)({ description: 'Preço por paciente extra', example: 0 }),
140
+ __metadata("design:type", Number)
141
+ ], PlanSummaryDto.prototype, "patientsExtraPrice", void 0);
142
+ __decorate([
143
+ (0, swagger_1.ApiProperty)({ description: 'Preço por médico extra', example: 0 }),
144
+ __metadata("design:type", Number)
145
+ ], PlanSummaryDto.prototype, "doctorsExtraPrice", void 0);
146
+ __decorate([
147
+ (0, swagger_1.ApiProperty)({ description: 'Preço por atendente extra', example: 0 }),
148
+ __metadata("design:type", Number)
149
+ ], PlanSummaryDto.prototype, "attendantsExtraPrice", void 0);
150
+ __decorate([
151
+ (0, swagger_1.ApiProperty)({ description: 'Preço por administrador extra', example: 0 }),
152
+ __metadata("design:type", Number)
153
+ ], PlanSummaryDto.prototype, "administratorsExtraPrice", void 0);
154
+ __decorate([
155
+ (0, swagger_1.ApiProperty)({ description: 'Preço por procedimento extra', example: 0 }),
156
+ __metadata("design:type", Number)
157
+ ], PlanSummaryDto.prototype, "proceduresExtraPrice", void 0);
158
+ __decorate([
159
+ (0, swagger_1.ApiProperty)({ description: 'Preço por instância WhatsApp extra', example: 0 }),
160
+ __metadata("design:type", Number)
161
+ ], PlanSummaryDto.prototype, "whatsappInstancesExtraPrice", void 0);
162
+ __decorate([
163
+ (0, swagger_1.ApiProperty)({ description: 'Preço por unidade extra', example: 0 }),
164
+ __metadata("design:type", Number)
165
+ ], PlanSummaryDto.prototype, "unitsExtraPrice", void 0);
166
+ __decorate([
167
+ (0, swagger_1.ApiProperty)({ description: 'Preço por termo jurídico mensal extra', example: 0 }),
168
+ __metadata("design:type", Number)
169
+ ], PlanSummaryDto.prototype, "monthlyLegalTermsExtraPrice", void 0);
170
+ __decorate([
171
+ (0, swagger_1.ApiProperty)({ description: 'Preço por sessão simultânea extra por conta', example: 0 }),
172
+ __metadata("design:type", Number)
173
+ ], PlanSummaryDto.prototype, "concurrentSessionsExtraPrice", void 0);
129
174
  __decorate([
130
175
  (0, swagger_1.ApiPropertyOptional)(),
131
176
  __metadata("design:type", Date)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Tenant-specific limit overrides (nullable fields fall back to plan defaults).
2
+ * Tenant-specific extra limits (somados ao plano base).
3
3
  */
4
4
  export declare class TenantLimitsSummaryDto {
5
5
  tenantId?: string;
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.TenantLimitsSummaryDto = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
14
  /**
15
- * Tenant-specific limit overrides (nullable fields fall back to plan defaults).
15
+ * Tenant-specific extra limits (somados ao plano base).
16
16
  */
17
17
  class TenantLimitsSummaryDto {
18
18
  tenantId;
@@ -35,35 +35,35 @@ __decorate([
35
35
  __metadata("design:type", String)
36
36
  ], TenantLimitsSummaryDto.prototype, "tenantId", void 0);
37
37
  __decorate([
38
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max patients' }),
38
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Pacientes extras' }),
39
39
  __metadata("design:type", Object)
40
40
  ], TenantLimitsSummaryDto.prototype, "maxPatients", void 0);
41
41
  __decorate([
42
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max doctors' }),
42
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Médicos extras' }),
43
43
  __metadata("design:type", Object)
44
44
  ], TenantLimitsSummaryDto.prototype, "maxDoctors", void 0);
45
45
  __decorate([
46
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max attendants' }),
46
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Atendentes extras' }),
47
47
  __metadata("design:type", Object)
48
48
  ], TenantLimitsSummaryDto.prototype, "maxAttendants", void 0);
49
49
  __decorate([
50
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max administrators' }),
50
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Administradores extras' }),
51
51
  __metadata("design:type", Object)
52
52
  ], TenantLimitsSummaryDto.prototype, "maxAdministrators", void 0);
53
53
  __decorate([
54
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max procedures' }),
54
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Procedimentos extras' }),
55
55
  __metadata("design:type", Object)
56
56
  ], TenantLimitsSummaryDto.prototype, "maxProcedures", void 0);
57
57
  __decorate([
58
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max WhatsApp instances' }),
58
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Instâncias WhatsApp extras' }),
59
59
  __metadata("design:type", Object)
60
60
  ], TenantLimitsSummaryDto.prototype, "maxWhatsappInstances", void 0);
61
61
  __decorate([
62
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max units' }),
62
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Unidades extras' }),
63
63
  __metadata("design:type", Object)
64
64
  ], TenantLimitsSummaryDto.prototype, "maxUnits", void 0);
65
65
  __decorate([
66
- (0, swagger_1.ApiPropertyOptional)({ description: 'Override max legal term dispatches per month (UTC)' }),
66
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Termos jurídicos mensais extras (UTC)' }),
67
67
  __metadata("design:type", Object)
68
68
  ], TenantLimitsSummaryDto.prototype, "monthlyLegalTerms", void 0);
69
69
  __decorate([
@@ -5,7 +5,7 @@ export type DashboardChartType = (typeof DASHBOARD_CHART_TYPES)[number];
5
5
  * Módulos de dados agregados do dashboard (cada um mapeia a permissões e a fatia do summary).
6
6
  * Manter alinhado ao `Frontend/.../lib/dashboard-data-modules.ts`.
7
7
  */
8
- export declare const DASHBOARD_DATA_MODULE_KEYS: readonly ["overview.clients_total", "overview.clients_active_inactive", "overview.units_total", "overview.revenue_totals", "overview.revenue_growth", "overview.estimated_mrr", "overview.clients_per_plan", "overview.recent_signups", "overview.invoice_counts", "billing.revenue_by_status", "billing.invoice_status_breakdown", "billing.invoice_counts", "billing.recent_invoices", "billing.payment_links", "tenants.client_list", "tenants.plan_per_client", "tenants.legal_term_policy", "tenants.whatsapp_provider", "tenants.scheduled_deletion", "tenants.hostnames", "tenants.storage_usage", "limits.per_client", "limits.session_policy", "limits.extra_storage", "plans.stats", "plans.list", "plans.active_inactive", "ia.tokens_per_tenant", "ia.agents_per_tenant", "ia.agents_summary", "ia.tool_policies", "ia.models_availability", "evolution.configs_summary", "evolution.instances_totals", "evolution.connection_state", "global.platform_config", "team.panel_admins", "audit.recent_events", "audit.outcome_counts", "security.device_sessions", "security.totp_status"];
8
+ export declare const DASHBOARD_DATA_MODULE_KEYS: readonly ["overview.clients_total", "overview.clients_active_inactive", "overview.units_total", "overview.revenue_totals", "overview.revenue_growth", "overview.estimated_mrr", "overview.clients_per_plan", "overview.recent_signups", "overview.invoice_counts", "billing.revenue_by_status", "billing.invoice_status_breakdown", "billing.invoice_counts", "billing.recent_invoices", "billing.payment_links", "tenants.client_list", "tenants.plan_per_client", "tenants.legal_term_policy", "tenants.whatsapp_provider", "tenants.scheduled_deletion", "tenants.hostnames", "tenants.storage_usage", "infra.storage_overview", "infra.storage_by_tenant", "limits.per_client", "limits.session_policy", "limits.extra_storage", "plans.stats", "plans.list", "plans.active_inactive", "ia.tokens_per_tenant", "ia.agents_per_tenant", "ia.agents_summary", "ia.tool_policies", "ia.models_availability", "evolution.configs_summary", "evolution.instances_totals", "evolution.connection_state", "global.platform_config", "team.panel_admins", "audit.recent_events", "audit.outcome_counts", "security.device_sessions", "security.totp_status"];
9
9
  export type DashboardDataModuleKey = (typeof DASHBOARD_DATA_MODULE_KEYS)[number];
10
10
  export declare function isDashboardDataModuleKey(v: string): v is DashboardDataModuleKey;
11
11
  /** Posição e tamanho no painel em percentagem (0–100) relativamente ao contentor do canvas. */
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-layout.dto.d.ts","sourceRoot":"","sources":["../../src/panel-rbac/dashboard-layout.dto.ts"],"names":[],"mappings":"AAiBA,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,4EASxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,qiCA0C7B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,sBAAsB,CAE/E;AAED,+FAA+F;AAC/F,qBAAa,sBAAsB;IAMjC,OAAO,EAAE,MAAM,CAAC;IAOhB,MAAM,EAAE,MAAM,CAAC;IAOf,QAAQ,EAAE,MAAM,CAAC;IAOjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAG7B,EAAE,EAAE,MAAM,CAAC;IAKX,UAAU,EAAE,sBAAsB,CAAC;IAKnC,SAAS,EAAE,kBAAkB,CAAC;IAE9B,0CAA0C;IAK1C,CAAC,EAAE,MAAM,CAAC;IAEV,iCAAiC;IAKjC,CAAC,EAAE,MAAM,CAAC;IAEV;;;OAGG;IAOH,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,2CAA2C;IAI3C,KAAK,EAAE,MAAM,CAAC;IAMd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0HAA0H;IAK1H,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,qBAAa,kBAAkB;IAK7B,OAAO,EAAE,MAAM,CAAC;IAOhB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B"}
1
+ {"version":3,"file":"dashboard-layout.dto.d.ts","sourceRoot":"","sources":["../../src/panel-rbac/dashboard-layout.dto.ts"],"names":[],"mappings":"AAiBA,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,4EASxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,0lCA4C7B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,sBAAsB,CAE/E;AAED,+FAA+F;AAC/F,qBAAa,sBAAsB;IAMjC,OAAO,EAAE,MAAM,CAAC;IAOhB,MAAM,EAAE,MAAM,CAAC;IAOf,QAAQ,EAAE,MAAM,CAAC;IAOjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,kBAAkB;IAG7B,EAAE,EAAE,MAAM,CAAC;IAKX,UAAU,EAAE,sBAAsB,CAAC;IAKnC,SAAS,EAAE,kBAAkB,CAAC;IAE9B,0CAA0C;IAK1C,CAAC,EAAE,MAAM,CAAC;IAEV,iCAAiC;IAKjC,CAAC,EAAE,MAAM,CAAC;IAEV;;;OAGG;IAOH,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX,2CAA2C;IAI3C,KAAK,EAAE,MAAM,CAAC;IAMd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0HAA0H;IAK1H,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,qBAAa,kBAAkB;IAK7B,OAAO,EAAE,MAAM,CAAC;IAOhB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B"}
@@ -51,6 +51,8 @@ exports.DASHBOARD_DATA_MODULE_KEYS = [
51
51
  'tenants.scheduled_deletion',
52
52
  'tenants.hostnames',
53
53
  'tenants.storage_usage',
54
+ 'infra.storage_overview',
55
+ 'infra.storage_by_tenant',
54
56
  'limits.per_client',
55
57
  'limits.session_policy',
56
58
  'limits.extra_storage',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tychat-contracts",
3
- "version": "1.6.15",
3
+ "version": "1.6.19",
4
4
  "description": "DTOs compartilhados com class-validator (API e microserviços)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +1,7 @@
1
1
  import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
2
2
  import { TenantAiTokenStateDto } from '../tenants/tenant-ai-token-state.dto';
3
3
  import { EffectiveAppModulePolicyDto } from './app-module-policy.dto';
4
+ import { ExtraLimitsChargeBreakdownDto } from './extra-limits-charge-breakdown.dto';
4
5
  import { PlanSummaryDto } from './plan-summary.dto';
5
6
  import { TenantLimitsSummaryDto } from './tenant-limits-summary.dto';
6
7
  import { TenantStorageUsageSummaryDto } from './tenant-storage-usage-summary.dto';
@@ -62,12 +63,23 @@ export class ConfigurationTenantSummaryDto {
62
63
  clinicEffectiveLimitBytes?: string;
63
64
 
64
65
  @ApiPropertyOptional({
65
- description: 'Valor mensal estimado pelos GB extras de armazenamento (soma dos dois tipos)',
66
+ description: 'Valor mensal estimado pelos extras de armazenamento (conversas + clínico)',
66
67
  })
67
68
  extraStorageCharge?: number;
68
69
 
69
70
  @ApiPropertyOptional({
70
- description: 'Preço base do plano + extraStorageCharge',
71
+ description: 'Valor mensal estimado pelos extras de limites (sem armazenamento)',
72
+ })
73
+ extraLimitsCharge?: number;
74
+
75
+ @ApiPropertyOptional({
76
+ description: 'Detalhamento da cobrança mensal por tipo de limite extra',
77
+ type: () => ExtraLimitsChargeBreakdownDto,
78
+ })
79
+ extraLimitsChargeBreakdown?: ExtraLimitsChargeBreakdownDto;
80
+
81
+ @ApiPropertyOptional({
82
+ description: 'Preço base do plano + extras (limites e armazenamento)',
71
83
  })
72
84
  effectivePlanPrice?: number;
73
85
 
@@ -0,0 +1,39 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+
3
+ export class ExtraLimitsChargeBreakdownDto {
4
+ @ApiProperty({ description: 'Cobrança por pacientes extras', example: 0 })
5
+ patients: number;
6
+
7
+ @ApiProperty({ description: 'Cobrança por médicos extras', example: 0 })
8
+ doctors: number;
9
+
10
+ @ApiProperty({ description: 'Cobrança por atendentes extras', example: 0 })
11
+ attendants: number;
12
+
13
+ @ApiProperty({ description: 'Cobrança por administradores extras', example: 0 })
14
+ administrators: number;
15
+
16
+ @ApiProperty({ description: 'Cobrança por procedimentos extras', example: 0 })
17
+ procedures: number;
18
+
19
+ @ApiProperty({ description: 'Cobrança por instâncias WhatsApp extras', example: 0 })
20
+ whatsappInstances: number;
21
+
22
+ @ApiProperty({ description: 'Cobrança por unidades extras', example: 0 })
23
+ units: number;
24
+
25
+ @ApiProperty({ description: 'Cobrança por termos jurídicos mensais extras', example: 0 })
26
+ monthlyLegalTerms: number;
27
+
28
+ @ApiProperty({ description: 'Cobrança por sessões simultâneas extras por conta', example: 0 })
29
+ concurrentSessions: number;
30
+
31
+ @ApiProperty({ description: 'Cobrança por armazenamento extra de conversas', example: 0 })
32
+ conversationStorage: number;
33
+
34
+ @ApiProperty({ description: 'Cobrança por armazenamento extra clínico', example: 0 })
35
+ clinicStorage: number;
36
+
37
+ @ApiProperty({ description: 'Soma total das cobranças de extras', example: 0 })
38
+ total: number;
39
+ }
@@ -9,5 +9,6 @@ export * from './app-module-policy.dto';
9
9
  export * from './plan-summary.dto';
10
10
  export * from './tenant-limits-summary.dto';
11
11
  export * from './tenant-storage-usage-summary.dto';
12
+ export * from './extra-limits-charge-breakdown.dto';
12
13
  export * from './configuration-tenant-summary.dto';
13
14
  export * from './clinic-configuration-with-tenant.dto';
@@ -71,6 +71,33 @@ export class PlanSummaryDto {
71
71
  @ApiProperty({ description: 'Preço unitário por GB extra clínico', example: 0 })
72
72
  clinicExtraPricePerGb: number;
73
73
 
74
+ @ApiProperty({ description: 'Preço por paciente extra', example: 0 })
75
+ patientsExtraPrice: number;
76
+
77
+ @ApiProperty({ description: 'Preço por médico extra', example: 0 })
78
+ doctorsExtraPrice: number;
79
+
80
+ @ApiProperty({ description: 'Preço por atendente extra', example: 0 })
81
+ attendantsExtraPrice: number;
82
+
83
+ @ApiProperty({ description: 'Preço por administrador extra', example: 0 })
84
+ administratorsExtraPrice: number;
85
+
86
+ @ApiProperty({ description: 'Preço por procedimento extra', example: 0 })
87
+ proceduresExtraPrice: number;
88
+
89
+ @ApiProperty({ description: 'Preço por instância WhatsApp extra', example: 0 })
90
+ whatsappInstancesExtraPrice: number;
91
+
92
+ @ApiProperty({ description: 'Preço por unidade extra', example: 0 })
93
+ unitsExtraPrice: number;
94
+
95
+ @ApiProperty({ description: 'Preço por termo jurídico mensal extra', example: 0 })
96
+ monthlyLegalTermsExtraPrice: number;
97
+
98
+ @ApiProperty({ description: 'Preço por sessão simultânea extra por conta', example: 0 })
99
+ concurrentSessionsExtraPrice: number;
100
+
74
101
  @ApiPropertyOptional()
75
102
  createdAt?: Date;
76
103
 
@@ -1,34 +1,34 @@
1
1
  import { ApiPropertyOptional } from '@nestjs/swagger';
2
2
 
3
3
  /**
4
- * Tenant-specific limit overrides (nullable fields fall back to plan defaults).
4
+ * Tenant-specific extra limits (somados ao plano base).
5
5
  */
6
6
  export class TenantLimitsSummaryDto {
7
7
  @ApiPropertyOptional({ description: 'Tenant ID (UUID)' })
8
8
  tenantId?: string;
9
9
 
10
- @ApiPropertyOptional({ description: 'Override max patients' })
10
+ @ApiPropertyOptional({ description: 'Pacientes extras' })
11
11
  maxPatients: number | null;
12
12
 
13
- @ApiPropertyOptional({ description: 'Override max doctors' })
13
+ @ApiPropertyOptional({ description: 'Médicos extras' })
14
14
  maxDoctors: number | null;
15
15
 
16
- @ApiPropertyOptional({ description: 'Override max attendants' })
16
+ @ApiPropertyOptional({ description: 'Atendentes extras' })
17
17
  maxAttendants: number | null;
18
18
 
19
- @ApiPropertyOptional({ description: 'Override max administrators' })
19
+ @ApiPropertyOptional({ description: 'Administradores extras' })
20
20
  maxAdministrators: number | null;
21
21
 
22
- @ApiPropertyOptional({ description: 'Override max procedures' })
22
+ @ApiPropertyOptional({ description: 'Procedimentos extras' })
23
23
  maxProcedures: number | null;
24
24
 
25
- @ApiPropertyOptional({ description: 'Override max WhatsApp instances' })
25
+ @ApiPropertyOptional({ description: 'Instâncias WhatsApp extras' })
26
26
  maxWhatsappInstances: number | null;
27
27
 
28
- @ApiPropertyOptional({ description: 'Override max units' })
28
+ @ApiPropertyOptional({ description: 'Unidades extras' })
29
29
  maxUnits: number | null;
30
30
 
31
- @ApiPropertyOptional({ description: 'Override max legal term dispatches per month (UTC)' })
31
+ @ApiPropertyOptional({ description: 'Termos jurídicos mensais extras (UTC)' })
32
32
  monthlyLegalTerms: number | null;
33
33
 
34
34
  @ApiPropertyOptional({ description: 'GB extras de armazenamento de conversas (somados ao plano)', default: 0 })
@@ -55,6 +55,8 @@ export const DASHBOARD_DATA_MODULE_KEYS = [
55
55
  'tenants.scheduled_deletion',
56
56
  'tenants.hostnames',
57
57
  'tenants.storage_usage',
58
+ 'infra.storage_overview',
59
+ 'infra.storage_by_tenant',
58
60
  'limits.per_client',
59
61
  'limits.session_policy',
60
62
  'limits.extra_storage',