@neohm/nestend 6.1.2 → 6.3.0

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.
Files changed (222) hide show
  1. package/dist/admin/controllers/admin.limit.controller.d.ts +17 -0
  2. package/dist/admin/controllers/admin.limit.controller.d.ts.map +1 -0
  3. package/dist/admin/controllers/admin.limit.controller.js +132 -0
  4. package/dist/admin/controllers/admin.limit.controller.js.map +1 -0
  5. package/dist/admin/controllers/admin.plan.controller.d.ts +17 -0
  6. package/dist/admin/controllers/admin.plan.controller.d.ts.map +1 -0
  7. package/dist/admin/controllers/admin.plan.controller.js +121 -0
  8. package/dist/admin/controllers/admin.plan.controller.js.map +1 -0
  9. package/dist/admin/controllers/admin.tenant.controller.d.ts +18 -3
  10. package/dist/admin/controllers/admin.tenant.controller.d.ts.map +1 -1
  11. package/dist/admin/controllers/admin.tenant.controller.js +147 -6
  12. package/dist/admin/controllers/admin.tenant.controller.js.map +1 -1
  13. package/dist/admin/dtos/add.limit.dto.d.ts +11 -0
  14. package/dist/admin/dtos/add.limit.dto.d.ts.map +1 -0
  15. package/dist/admin/dtos/add.limit.dto.js +78 -0
  16. package/dist/admin/dtos/add.limit.dto.js.map +1 -0
  17. package/dist/admin/dtos/add.plan.dto.d.ts +16 -0
  18. package/dist/admin/dtos/add.plan.dto.d.ts.map +1 -0
  19. package/dist/admin/dtos/add.plan.dto.js +120 -0
  20. package/dist/admin/dtos/add.plan.dto.js.map +1 -0
  21. package/dist/admin/dtos/add.tenant.dto.d.ts +4 -0
  22. package/dist/admin/dtos/add.tenant.dto.d.ts.map +1 -1
  23. package/dist/admin/dtos/add.tenant.dto.js +27 -0
  24. package/dist/admin/dtos/add.tenant.dto.js.map +1 -1
  25. package/dist/admin/dtos/assign.tenant.plan.dto.d.ts +7 -0
  26. package/dist/admin/dtos/assign.tenant.plan.dto.d.ts.map +1 -0
  27. package/dist/admin/dtos/assign.tenant.plan.dto.js +44 -0
  28. package/dist/admin/dtos/assign.tenant.plan.dto.js.map +1 -0
  29. package/dist/admin/dtos/limit.list.dto.d.ts +4 -0
  30. package/dist/admin/dtos/limit.list.dto.d.ts.map +1 -0
  31. package/dist/admin/dtos/limit.list.dto.js +8 -0
  32. package/dist/admin/dtos/limit.list.dto.js.map +1 -0
  33. package/dist/admin/dtos/plan.list.dto.d.ts +4 -0
  34. package/dist/admin/dtos/plan.list.dto.d.ts.map +1 -0
  35. package/dist/admin/dtos/plan.list.dto.js +8 -0
  36. package/dist/admin/dtos/plan.list.dto.js.map +1 -0
  37. package/dist/admin/dtos/set.tenant.limit.dto.d.ts +7 -0
  38. package/dist/admin/dtos/set.tenant.limit.dto.d.ts.map +1 -0
  39. package/dist/admin/dtos/set.tenant.limit.dto.js +58 -0
  40. package/dist/admin/dtos/set.tenant.limit.dto.js.map +1 -0
  41. package/dist/admin/es6.classes.d.ts +14 -3
  42. package/dist/admin/es6.classes.d.ts.map +1 -1
  43. package/dist/admin/es6.classes.js +29 -0
  44. package/dist/admin/es6.classes.js.map +1 -1
  45. package/dist/admin/libraries/limit.data.processor.d.ts +16 -0
  46. package/dist/admin/libraries/limit.data.processor.d.ts.map +1 -0
  47. package/dist/admin/libraries/limit.data.processor.js +79 -0
  48. package/dist/admin/libraries/limit.data.processor.js.map +1 -0
  49. package/dist/admin/libraries/limit.list.processor.d.ts +11 -0
  50. package/dist/admin/libraries/limit.list.processor.d.ts.map +1 -0
  51. package/dist/admin/libraries/limit.list.processor.js +57 -0
  52. package/dist/admin/libraries/limit.list.processor.js.map +1 -0
  53. package/dist/admin/libraries/plan.data.processor.d.ts +22 -0
  54. package/dist/admin/libraries/plan.data.processor.d.ts.map +1 -0
  55. package/dist/admin/libraries/plan.data.processor.js +183 -0
  56. package/dist/admin/libraries/plan.data.processor.js.map +1 -0
  57. package/dist/admin/libraries/plan.list.processor.d.ts +11 -0
  58. package/dist/admin/libraries/plan.list.processor.d.ts.map +1 -0
  59. package/dist/admin/libraries/plan.list.processor.js +77 -0
  60. package/dist/admin/libraries/plan.list.processor.js.map +1 -0
  61. package/dist/admin/libraries/tenant.data.processor.d.ts +7 -5
  62. package/dist/admin/libraries/tenant.data.processor.d.ts.map +1 -1
  63. package/dist/admin/libraries/tenant.data.processor.js +75 -32
  64. package/dist/admin/libraries/tenant.data.processor.js.map +1 -1
  65. package/dist/admin/libraries/tenant.limit.data.processor.d.ts +14 -0
  66. package/dist/admin/libraries/tenant.limit.data.processor.d.ts.map +1 -0
  67. package/dist/admin/libraries/tenant.limit.data.processor.js +89 -0
  68. package/dist/admin/libraries/tenant.limit.data.processor.js.map +1 -0
  69. package/dist/admin/libraries/tenant.plan.data.processor.d.ts +16 -0
  70. package/dist/admin/libraries/tenant.plan.data.processor.d.ts.map +1 -0
  71. package/dist/admin/libraries/tenant.plan.data.processor.js +66 -0
  72. package/dist/admin/libraries/tenant.plan.data.processor.js.map +1 -0
  73. package/dist/auth/auth.module.d.ts.map +1 -1
  74. package/dist/auth/auth.module.js +23 -1
  75. package/dist/auth/auth.module.js.map +1 -1
  76. package/dist/auth/controllers/tenant.limit.controller.d.ts +10 -0
  77. package/dist/auth/controllers/tenant.limit.controller.d.ts.map +1 -0
  78. package/dist/auth/controllers/tenant.limit.controller.js +51 -0
  79. package/dist/auth/controllers/tenant.limit.controller.js.map +1 -0
  80. package/dist/auth/controllers/tenant.plan.controller.d.ts +10 -0
  81. package/dist/auth/controllers/tenant.plan.controller.d.ts.map +1 -0
  82. package/dist/auth/controllers/tenant.plan.controller.js +55 -0
  83. package/dist/auth/controllers/tenant.plan.controller.js.map +1 -0
  84. package/dist/auth/entities/limit.entity.d.ts +13 -0
  85. package/dist/auth/entities/limit.entity.d.ts.map +1 -0
  86. package/dist/auth/entities/limit.entity.js +52 -0
  87. package/dist/auth/entities/limit.entity.js.map +1 -0
  88. package/dist/auth/entities/plan.entity.d.ts +14 -0
  89. package/dist/auth/entities/plan.entity.d.ts.map +1 -0
  90. package/dist/auth/entities/plan.entity.js +55 -0
  91. package/dist/auth/entities/plan.entity.js.map +1 -0
  92. package/dist/auth/entities/plan.limit.entity.d.ts +11 -0
  93. package/dist/auth/entities/plan.limit.entity.d.ts.map +1 -0
  94. package/dist/auth/entities/plan.limit.entity.js +45 -0
  95. package/dist/auth/entities/plan.limit.entity.js.map +1 -0
  96. package/dist/auth/entities/plan.scope.entity.d.ts +10 -0
  97. package/dist/auth/entities/plan.scope.entity.d.ts.map +1 -0
  98. package/dist/auth/entities/plan.scope.entity.js +41 -0
  99. package/dist/auth/entities/plan.scope.entity.js.map +1 -0
  100. package/dist/auth/entities/tenant.limit.entity.d.ts +13 -0
  101. package/dist/auth/entities/tenant.limit.entity.d.ts.map +1 -0
  102. package/dist/auth/entities/tenant.limit.entity.js +53 -0
  103. package/dist/auth/entities/tenant.limit.entity.js.map +1 -0
  104. package/dist/auth/entities/tenant.limit.usage.entity.d.ts +8 -0
  105. package/dist/auth/entities/tenant.limit.usage.entity.d.ts.map +1 -0
  106. package/dist/auth/entities/tenant.limit.usage.entity.js +37 -0
  107. package/dist/auth/entities/tenant.limit.usage.entity.js.map +1 -0
  108. package/dist/auth/entities/tenant.plan.entity.d.ts +15 -0
  109. package/dist/auth/entities/tenant.plan.entity.d.ts.map +1 -0
  110. package/dist/auth/entities/tenant.plan.entity.js +58 -0
  111. package/dist/auth/entities/tenant.plan.entity.js.map +1 -0
  112. package/dist/auth/enums/tenant.limit.enum.d.ts +36 -0
  113. package/dist/auth/enums/tenant.limit.enum.d.ts.map +1 -0
  114. package/dist/auth/enums/tenant.limit.enum.js +45 -0
  115. package/dist/auth/enums/tenant.limit.enum.js.map +1 -0
  116. package/dist/auth/enums/tenant.onboarding.source.enum.d.ts +5 -0
  117. package/dist/auth/enums/tenant.onboarding.source.enum.d.ts.map +1 -0
  118. package/dist/auth/enums/tenant.onboarding.source.enum.js +9 -0
  119. package/dist/auth/enums/tenant.onboarding.source.enum.js.map +1 -0
  120. package/dist/auth/enums/tenant.plan.enum.d.ts +26 -0
  121. package/dist/auth/enums/tenant.plan.enum.d.ts.map +1 -0
  122. package/dist/auth/enums/tenant.plan.enum.js +34 -0
  123. package/dist/auth/enums/tenant.plan.enum.js.map +1 -0
  124. package/dist/auth/enums/tenant.provisioning.enum.d.ts +16 -0
  125. package/dist/auth/enums/tenant.provisioning.enum.d.ts.map +1 -0
  126. package/dist/auth/enums/tenant.provisioning.enum.js +21 -0
  127. package/dist/auth/enums/tenant.provisioning.enum.js.map +1 -0
  128. package/dist/auth/es6.classes.d.ts +7 -2
  129. package/dist/auth/es6.classes.d.ts.map +1 -1
  130. package/dist/auth/es6.classes.js +10 -0
  131. package/dist/auth/es6.classes.js.map +1 -1
  132. package/dist/auth/processors/tenant.invitation.data.processor.d.ts.map +1 -1
  133. package/dist/auth/processors/tenant.invitation.data.processor.js +3 -0
  134. package/dist/auth/processors/tenant.invitation.data.processor.js.map +1 -1
  135. package/dist/auth/services/scope.service.d.ts +1 -0
  136. package/dist/auth/services/scope.service.d.ts.map +1 -1
  137. package/dist/auth/services/scope.service.js +18 -0
  138. package/dist/auth/services/scope.service.js.map +1 -1
  139. package/dist/auth/services/tenant.invitation.service.d.ts.map +1 -1
  140. package/dist/auth/services/tenant.invitation.service.js +21 -2
  141. package/dist/auth/services/tenant.invitation.service.js.map +1 -1
  142. package/dist/auth/services/tenant.limit.service.d.ts +20 -0
  143. package/dist/auth/services/tenant.limit.service.d.ts.map +1 -0
  144. package/dist/auth/services/tenant.limit.service.js +104 -0
  145. package/dist/auth/services/tenant.limit.service.js.map +1 -0
  146. package/dist/auth/services/tenant.plan.service.d.ts +20 -0
  147. package/dist/auth/services/tenant.plan.service.d.ts.map +1 -0
  148. package/dist/auth/services/tenant.plan.service.js +155 -0
  149. package/dist/auth/services/tenant.plan.service.js.map +1 -0
  150. package/dist/auth/services/tenant.provisioning.service.d.ts +18 -0
  151. package/dist/auth/services/tenant.provisioning.service.d.ts.map +1 -0
  152. package/dist/auth/services/tenant.provisioning.service.js +205 -0
  153. package/dist/auth/services/tenant.provisioning.service.js.map +1 -0
  154. package/dist/auth/types/tenant.limit.types.d.ts +39 -0
  155. package/dist/auth/types/tenant.limit.types.d.ts.map +1 -0
  156. package/dist/auth/types/tenant.limit.types.js +3 -0
  157. package/dist/auth/types/tenant.limit.types.js.map +1 -0
  158. package/dist/auth/types/tenant.plan.types.d.ts +54 -0
  159. package/dist/auth/types/tenant.plan.types.d.ts.map +1 -0
  160. package/dist/auth/types/tenant.plan.types.js +3 -0
  161. package/dist/auth/types/tenant.plan.types.js.map +1 -0
  162. package/dist/auth/types/tenant.provisioning.types.d.ts +42 -0
  163. package/dist/auth/types/tenant.provisioning.types.d.ts.map +1 -0
  164. package/dist/auth/types/tenant.provisioning.types.js +3 -0
  165. package/dist/auth/types/tenant.provisioning.types.js.map +1 -0
  166. package/dist/auth/utilities/tenant.limits.d.ts +22 -0
  167. package/dist/auth/utilities/tenant.limits.d.ts.map +1 -0
  168. package/dist/auth/utilities/tenant.limits.js +204 -0
  169. package/dist/auth/utilities/tenant.limits.js.map +1 -0
  170. package/dist/auth/utilities/tenant.plans.d.ts +12 -0
  171. package/dist/auth/utilities/tenant.plans.d.ts.map +1 -0
  172. package/dist/auth/utilities/tenant.plans.js +91 -0
  173. package/dist/auth/utilities/tenant.plans.js.map +1 -0
  174. package/dist/constants/entity.constants.d.ts +7 -0
  175. package/dist/constants/entity.constants.d.ts.map +1 -1
  176. package/dist/constants/entity.constants.js +7 -0
  177. package/dist/constants/entity.constants.js.map +1 -1
  178. package/dist/constants/entity.maps.d.ts +14 -0
  179. package/dist/constants/entity.maps.d.ts.map +1 -1
  180. package/dist/constants/entity.maps.js +14 -0
  181. package/dist/constants/entity.maps.js.map +1 -1
  182. package/dist/global/exceptions/limit.exceeded.exception.d.ts +5 -0
  183. package/dist/global/exceptions/limit.exceeded.exception.d.ts.map +1 -0
  184. package/dist/global/exceptions/limit.exceeded.exception.js +12 -0
  185. package/dist/global/exceptions/limit.exceeded.exception.js.map +1 -0
  186. package/dist/index.d.ts +19 -0
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +39 -4
  189. package/dist/index.js.map +1 -1
  190. package/dist/migrations/1749600000037.CreateSysLimitsTable.d.ts +6 -0
  191. package/dist/migrations/1749600000037.CreateSysLimitsTable.d.ts.map +1 -0
  192. package/dist/migrations/1749600000037.CreateSysLimitsTable.js +38 -0
  193. package/dist/migrations/1749600000037.CreateSysLimitsTable.js.map +1 -0
  194. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.d.ts +6 -0
  195. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.d.ts.map +1 -0
  196. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.js +35 -0
  197. package/dist/migrations/1749600000038.CreateSysTenantLimitsTable.js.map +1 -0
  198. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.d.ts +6 -0
  199. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.d.ts.map +1 -0
  200. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.js +32 -0
  201. package/dist/migrations/1749600000039.CreateSysTenantLimitUsagesTable.js.map +1 -0
  202. package/dist/migrations/1749600000040.SeedTenantLimits.d.ts +6 -0
  203. package/dist/migrations/1749600000040.SeedTenantLimits.d.ts.map +1 -0
  204. package/dist/migrations/1749600000040.SeedTenantLimits.js +23 -0
  205. package/dist/migrations/1749600000040.SeedTenantLimits.js.map +1 -0
  206. package/dist/migrations/1749600000041.CreateSysPlansTable.d.ts +6 -0
  207. package/dist/migrations/1749600000041.CreateSysPlansTable.d.ts.map +1 -0
  208. package/dist/migrations/1749600000041.CreateSysPlansTable.js +29 -0
  209. package/dist/migrations/1749600000041.CreateSysPlansTable.js.map +1 -0
  210. package/dist/migrations/1749600000042.CreateSysPlanScopesTable.d.ts +6 -0
  211. package/dist/migrations/1749600000042.CreateSysPlanScopesTable.d.ts.map +1 -0
  212. package/dist/migrations/1749600000042.CreateSysPlanScopesTable.js +32 -0
  213. package/dist/migrations/1749600000042.CreateSysPlanScopesTable.js.map +1 -0
  214. package/dist/migrations/1749600000043.CreateSysPlanLimitsTable.d.ts +6 -0
  215. package/dist/migrations/1749600000043.CreateSysPlanLimitsTable.d.ts.map +1 -0
  216. package/dist/migrations/1749600000043.CreateSysPlanLimitsTable.js +33 -0
  217. package/dist/migrations/1749600000043.CreateSysPlanLimitsTable.js.map +1 -0
  218. package/dist/migrations/1749600000044.CreateSysTenantPlansTable.d.ts +6 -0
  219. package/dist/migrations/1749600000044.CreateSysTenantPlansTable.d.ts.map +1 -0
  220. package/dist/migrations/1749600000044.CreateSysTenantPlansTable.js +46 -0
  221. package/dist/migrations/1749600000044.CreateSysTenantPlansTable.js.map +1 -0
  222. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { LimitEntity } from '../../auth/entities/limit.entity';
3
+ import { TenantLimitService } from '../../auth/services/tenant.limit.service';
4
+ import { AdminAccessService } from '../services/admin.access.service';
5
+ import { AddLimitDto } from '../dtos/add.limit.dto';
6
+ import { LimitListDto } from '../dtos/limit.list.dto';
7
+ export declare class AdminLimitController {
8
+ private readonly adminAccessService;
9
+ private readonly tenantLimitService;
10
+ private readonly listFilterService;
11
+ constructor(adminAccessService: AdminAccessService, tenantLimitService: TenantLimitService, listFilterService: ListFilterService);
12
+ save(dto: AddLimitDto): Promise<LimitEntity>;
13
+ list(dto: LimitListDto): Promise<import("../..").CommonListResult>;
14
+ detail(id: string): Promise<LimitEntity>;
15
+ remove(id: string): Promise<import("../..").DeleteResult>;
16
+ }
17
+ //# sourceMappingURL=admin.limit.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.limit.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.limit.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAK9E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAOtD,qBAIa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB;IASjD,IAAI,CAAS,GAAG,EAAE,WAAW;IAW7B,IAAI,CAAS,GAAG,EAAE,YAAY;IAU9B,MAAM,CAA6B,EAAE,EAAE,MAAM;IAgB7C,MAAM,CAA6B,EAAE,EAAE,MAAM;CAqBpD"}
@@ -0,0 +1,132 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AdminLimitController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
19
+ const strict_validation_pipe_1 = require("../../common/pipes/strict.validation.pipe");
20
+ const not_found_exception_1 = require("../../global/exceptions/not.found.exception");
21
+ const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
22
+ const entity_constants_1 = require("../../constants/entity.constants");
23
+ const limit_entity_1 = require("../../auth/entities/limit.entity");
24
+ const tenant_limit_enum_1 = require("../../auth/enums/tenant.limit.enum");
25
+ const tenant_limit_service_1 = require("../../auth/services/tenant.limit.service");
26
+ const admin_access_service_1 = require("../services/admin.access.service");
27
+ const admin_audit_1 = require("../utilities/admin.audit");
28
+ const limit_data_processor_1 = require("../libraries/limit.data.processor");
29
+ const limit_list_processor_1 = require("../libraries/limit.list.processor");
30
+ const add_limit_dto_1 = require("../dtos/add.limit.dto");
31
+ const limit_list_dto_1 = require("../dtos/limit.list.dto");
32
+ let AdminLimitController = class AdminLimitController {
33
+ constructor(adminAccessService, tenantLimitService, listFilterService) {
34
+ this.adminAccessService = adminAccessService;
35
+ this.tenantLimitService = tenantLimitService;
36
+ this.listFilterService = listFilterService;
37
+ }
38
+ async save(dto) {
39
+ const access = await this.adminAccessService.validateAdmin();
40
+ return new limit_data_processor_1.LimitDataProcessor(access).process(dto);
41
+ }
42
+ async list(dto) {
43
+ await this.adminAccessService.validateContentReader();
44
+ return new limit_list_processor_1.LimitListProcessor(this.listFilterService).process(dto);
45
+ }
46
+ async detail(id) {
47
+ await this.adminAccessService.validateContentReader();
48
+ const limit = await limit_entity_1.LimitEntity.findOne({
49
+ where: { id },
50
+ relations: { scope: true },
51
+ });
52
+ if (!limit)
53
+ throw new not_found_exception_1.NotFoundException(tenant_limit_enum_1.TenantLimitMessage.NOT_FOUND);
54
+ return limit;
55
+ }
56
+ async remove(id) {
57
+ const { user } = await this.adminAccessService.validateSuperAdmin();
58
+ const limit = await limit_entity_1.LimitEntity.findOne({ where: { id } });
59
+ if (!limit)
60
+ throw new not_found_exception_1.NotFoundException(tenant_limit_enum_1.TenantLimitMessage.NOT_FOUND);
61
+ const result = await this.tenantLimitService.deleteLimit(id, user.id);
62
+ await admin_audit_1.AdminAudit.record(limit_entity_1.LimitEntity.getRepository().manager, {
63
+ actor: user,
64
+ sourceType: entity_constants_1.baseEntityConstants.limit,
65
+ sourceId: id,
66
+ action: audit_action_enum_1.AuditAction.SOFT_DELETE,
67
+ oldValue: admin_audit_1.AdminAudit.pick(limit, [
68
+ 'identifier',
69
+ 'name',
70
+ 'scope_id',
71
+ 'default_value',
72
+ 'period',
73
+ ]),
74
+ });
75
+ return result;
76
+ }
77
+ };
78
+ exports.AdminLimitController = AdminLimitController;
79
+ __decorate([
80
+ (0, common_1.Post)(),
81
+ (0, swagger_1.ApiOperation)({
82
+ summary: 'Define a limit, or update an existing one.',
83
+ description: 'Send an `id` to edit; omit it to define one. `identifier` (unique), `scope_id` and `period` are fixed once created. `default_value` null = unlimited. Requires at least the global admin role.',
84
+ }),
85
+ __param(0, (0, common_1.Body)()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [add_limit_dto_1.AddLimitDto]),
88
+ __metadata("design:returntype", Promise)
89
+ ], AdminLimitController.prototype, "save", null);
90
+ __decorate([
91
+ (0, common_1.Post)('list'),
92
+ (0, swagger_1.ApiOperation)({
93
+ summary: 'List, search and filter limits.',
94
+ description: 'Rows carry `scope_identifier`, `scope_name` and `overrides` (tenants with their own value). Requires at least the global content reader role.',
95
+ }),
96
+ __param(0, (0, common_1.Body)()),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [limit_list_dto_1.LimitListDto]),
99
+ __metadata("design:returntype", Promise)
100
+ ], AdminLimitController.prototype, "list", null);
101
+ __decorate([
102
+ (0, common_1.Get)(':id'),
103
+ (0, swagger_1.ApiOperation)({
104
+ summary: 'One limit, in full.',
105
+ description: 'Requires at least the global content reader role.',
106
+ }),
107
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [String]),
110
+ __metadata("design:returntype", Promise)
111
+ ], AdminLimitController.prototype, "detail", null);
112
+ __decorate([
113
+ (0, common_1.Delete)(':id'),
114
+ (0, swagger_1.ApiOperation)({
115
+ summary: 'Delete a limit.',
116
+ description: 'Soft delete, with every tenant override of it; code asserting it then refuses everyone. Built-in limits (e.g. `tenant.members.max`) cannot be deleted. Requires the global super admin role.',
117
+ }),
118
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
119
+ __metadata("design:type", Function),
120
+ __metadata("design:paramtypes", [String]),
121
+ __metadata("design:returntype", Promise)
122
+ ], AdminLimitController.prototype, "remove", null);
123
+ exports.AdminLimitController = AdminLimitController = __decorate([
124
+ (0, swagger_1.ApiTags)('Admin - Limits'),
125
+ (0, swagger_1.ApiBearerAuth)(),
126
+ (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
127
+ (0, common_1.Controller)('api/admin/limits'),
128
+ __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
129
+ tenant_limit_service_1.TenantLimitService,
130
+ list_filter_service_1.ListFilterService])
131
+ ], AdminLimitController);
132
+ //# sourceMappingURL=admin.limit.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.limit.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.limit.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ListFilterService } from '../../common/services/list.filter.service';
2
+ import { TenantPlanService } from '../../auth/services/tenant.plan.service';
3
+ import { PlanDetail } from '../../auth/types/tenant.plan.types';
4
+ import { AdminAccessService } from '../services/admin.access.service';
5
+ import { AddPlanDto } from '../dtos/add.plan.dto';
6
+ import { PlanListDto } from '../dtos/plan.list.dto';
7
+ export declare class AdminPlanController {
8
+ private readonly adminAccessService;
9
+ private readonly tenantPlanService;
10
+ private readonly listFilterService;
11
+ constructor(adminAccessService: AdminAccessService, tenantPlanService: TenantPlanService, listFilterService: ListFilterService);
12
+ save(dto: AddPlanDto): Promise<PlanDetail>;
13
+ list(dto: PlanListDto): Promise<import("../..").CommonListResult>;
14
+ detail(id: string): Promise<PlanDetail>;
15
+ remove(id: string): Promise<import("../..").DeleteResult>;
16
+ }
17
+ //# sourceMappingURL=admin.plan.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.plan.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.plan.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAO9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD,qBAIa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB;IASjD,IAAI,CAAS,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAYlD,IAAI,CAAS,GAAG,EAAE,WAAW;IAW7B,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAWnE,MAAM,CAA6B,EAAE,EAAE,MAAM;CAepD"}
@@ -0,0 +1,121 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AdminPlanController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const swagger_1 = require("@nestjs/swagger");
18
+ const list_filter_service_1 = require("../../common/services/list.filter.service");
19
+ const strict_validation_pipe_1 = require("../../common/pipes/strict.validation.pipe");
20
+ const not_found_exception_1 = require("../../global/exceptions/not.found.exception");
21
+ const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
22
+ const entity_constants_1 = require("../../constants/entity.constants");
23
+ const plan_entity_1 = require("../../auth/entities/plan.entity");
24
+ const tenant_plan_enum_1 = require("../../auth/enums/tenant.plan.enum");
25
+ const tenant_plan_service_1 = require("../../auth/services/tenant.plan.service");
26
+ const admin_access_service_1 = require("../services/admin.access.service");
27
+ const admin_audit_1 = require("../utilities/admin.audit");
28
+ const plan_data_processor_1 = require("../libraries/plan.data.processor");
29
+ const plan_list_processor_1 = require("../libraries/plan.list.processor");
30
+ const add_plan_dto_1 = require("../dtos/add.plan.dto");
31
+ const plan_list_dto_1 = require("../dtos/plan.list.dto");
32
+ let AdminPlanController = class AdminPlanController {
33
+ constructor(adminAccessService, tenantPlanService, listFilterService) {
34
+ this.adminAccessService = adminAccessService;
35
+ this.tenantPlanService = tenantPlanService;
36
+ this.listFilterService = listFilterService;
37
+ }
38
+ async save(dto) {
39
+ const access = await this.adminAccessService.validateSuperAdmin();
40
+ const plan = await new plan_data_processor_1.PlanDataProcessor(access).process(dto);
41
+ return this.tenantPlanService.detail(plan.id);
42
+ }
43
+ async list(dto) {
44
+ await this.adminAccessService.validateContentReader();
45
+ return new plan_list_processor_1.PlanListProcessor(this.listFilterService).process(dto);
46
+ }
47
+ async detail(id) {
48
+ await this.adminAccessService.validateContentReader();
49
+ return this.tenantPlanService.detail(id);
50
+ }
51
+ async remove(id) {
52
+ const { user } = await this.adminAccessService.validateSuperAdmin();
53
+ const plan = await plan_entity_1.PlanEntity.findOne({ where: { id } });
54
+ if (!plan)
55
+ throw new not_found_exception_1.NotFoundException(tenant_plan_enum_1.TenantPlanMessage.NOT_FOUND);
56
+ const result = await this.tenantPlanService.deletePlan(id, user.id);
57
+ await admin_audit_1.AdminAudit.record(plan_entity_1.PlanEntity.getRepository().manager, {
58
+ actor: user,
59
+ sourceType: entity_constants_1.baseEntityConstants.plan,
60
+ sourceId: id,
61
+ action: audit_action_enum_1.AuditAction.SOFT_DELETE,
62
+ oldValue: admin_audit_1.AdminAudit.pick(plan, ['identifier', 'name', 'self_serve']),
63
+ });
64
+ return result;
65
+ }
66
+ };
67
+ exports.AdminPlanController = AdminPlanController;
68
+ __decorate([
69
+ (0, common_1.Post)(),
70
+ (0, swagger_1.ApiOperation)({
71
+ summary: 'Define a plan, or update an existing one.',
72
+ description: "Send an `id` to edit; omit it to define one. `identifier` is fixed once created. `scope_ids` and `limits`, when sent, replace the plan's own: changed scopes are re-applied to every tenant on the plan, and limit values reach them at once. Every limit must belong to a scope the plan includes (or a child of one). Requires the global super admin role.",
73
+ }),
74
+ __param(0, (0, common_1.Body)()),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [add_plan_dto_1.AddPlanDto]),
77
+ __metadata("design:returntype", Promise)
78
+ ], AdminPlanController.prototype, "save", null);
79
+ __decorate([
80
+ (0, common_1.Post)('list'),
81
+ (0, swagger_1.ApiOperation)({
82
+ summary: 'List, search and filter plans.',
83
+ description: 'Rows carry `scopes`, `limits` (counts) and `tenants` (tenants on the plan now). Requires at least the global content reader role.',
84
+ }),
85
+ __param(0, (0, common_1.Body)()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [plan_list_dto_1.PlanListDto]),
88
+ __metadata("design:returntype", Promise)
89
+ ], AdminPlanController.prototype, "list", null);
90
+ __decorate([
91
+ (0, common_1.Get)(':id'),
92
+ (0, swagger_1.ApiOperation)({
93
+ summary: 'One plan, in full.',
94
+ description: 'With its `scopes`, `limits` (identifier, name, value) and `tenant_count`. Requires at least the global content reader role.',
95
+ }),
96
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [String]),
99
+ __metadata("design:returntype", Promise)
100
+ ], AdminPlanController.prototype, "detail", null);
101
+ __decorate([
102
+ (0, common_1.Delete)(':id'),
103
+ (0, swagger_1.ApiOperation)({
104
+ summary: 'Delete a plan.',
105
+ description: 'Soft delete, with its scopes and limit values. Refused while any tenant is on it — move them first. Requires the global super admin role.',
106
+ }),
107
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [String]),
110
+ __metadata("design:returntype", Promise)
111
+ ], AdminPlanController.prototype, "remove", null);
112
+ exports.AdminPlanController = AdminPlanController = __decorate([
113
+ (0, swagger_1.ApiTags)('Admin - Plans'),
114
+ (0, swagger_1.ApiBearerAuth)(),
115
+ (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
116
+ (0, common_1.Controller)('api/admin/plans'),
117
+ __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
118
+ tenant_plan_service_1.TenantPlanService,
119
+ list_filter_service_1.ListFilterService])
120
+ ], AdminPlanController);
121
+ //# sourceMappingURL=admin.plan.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.plan.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.plan.controller.ts"],"names":[],"mappings":"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"}
@@ -2,17 +2,32 @@ import { ListFilterService } from '../../common/services/list.filter.service';
2
2
  import { AdminAccessService } from '../services/admin.access.service';
3
3
  import { AddTenantDto } from '../dtos/add.tenant.dto';
4
4
  import { TenantListDto } from '../dtos/tenant.list.dto';
5
- import { TenantOnboardedMailJob } from '../../notification/jobs/tenant.onboarded.mail.job';
5
+ import { TenantProvisioningService } from '../../auth/services/tenant.provisioning.service';
6
6
  import { TenantEntity } from '../../tenant/entities/tenant.entity';
7
7
  import { TenantDetail } from '../types/admin.types';
8
+ import { AssignTenantPlanDto } from '../dtos/assign.tenant.plan.dto';
9
+ import { TenantPlanService } from '../../auth/services/tenant.plan.service';
10
+ import { TenantPlanSummary, TenantPlanView } from '../../auth/types/tenant.plan.types';
11
+ import { SetTenantLimitDto } from '../dtos/set.tenant.limit.dto';
12
+ import { TenantLimitService } from '../../auth/services/tenant.limit.service';
13
+ import { TenantLimitEntity } from '../../auth/entities/tenant.limit.entity';
14
+ import { LimitStatus } from '../../auth/types/tenant.limit.types';
8
15
  export declare class AdminTenantController {
9
16
  private readonly adminAccessService;
10
- private readonly tenantOnboardedMailJob;
17
+ private readonly tenantProvisioningService;
11
18
  private readonly listFilterService;
12
- constructor(adminAccessService: AdminAccessService, tenantOnboardedMailJob: TenantOnboardedMailJob, listFilterService: ListFilterService);
19
+ private readonly tenantLimitService;
20
+ private readonly tenantPlanService;
21
+ constructor(adminAccessService: AdminAccessService, tenantProvisioningService: TenantProvisioningService, listFilterService: ListFilterService, tenantLimitService: TenantLimitService, tenantPlanService: TenantPlanService);
13
22
  onboard(dto: AddTenantDto): Promise<TenantEntity>;
14
23
  list(dto: TenantListDto): Promise<import("../..").CommonListResult>;
15
24
  detail(id: string): Promise<TenantDetail>;
25
+ plan(id: string): Promise<TenantPlanView>;
26
+ assignPlan(id: string, dto: AssignTenantPlanDto): Promise<TenantPlanSummary>;
27
+ endPlan(id: string): Promise<TenantPlanView>;
28
+ limits(id: string): Promise<LimitStatus[]>;
29
+ setLimit(id: string, dto: SetTenantLimitDto): Promise<TenantLimitEntity>;
30
+ removeLimit(id: string, limitId: string): Promise<TenantLimitEntity>;
16
31
  remove(id: string): Promise<import("../types/admin.types").DeleteResult>;
17
32
  }
18
33
  //# sourceMappingURL=admin.tenant.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.tenant.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAIa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,kBAAkB,EAAE,kBAAkB,EACtC,sBAAsB,EAAE,sBAAsB,EAC9C,iBAAiB,EAAE,iBAAiB;IASjD,OAAO,CAAS,GAAG,EAAE,YAAY;IAajC,IAAI,CAAS,GAAG,EAAE,aAAa;IAW/B,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BrE,MAAM,CAA6B,EAAE,EAAE,MAAM;CAIpD"}
1
+ {"version":3,"file":"admin.tenant.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAMtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKlE,qBAIa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAJjB,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB;IASjD,OAAO,CAAS,GAAG,EAAE,YAAY;IAcjC,IAAI,CAAS,GAAG,EAAE,aAAa;IAW/B,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BrE,IAAI,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAarE,UAAU,CACc,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,mBAAmB,GAC/B,OAAO,CAAC,iBAAiB,CAAC;IAcvB,OAAO,CACiB,EAAE,EAAE,MAAM,GACrC,OAAO,CAAC,cAAc,CAAC;IA0BpB,MAAM,CAA6B,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAatE,QAAQ,CACgB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,iBAAiB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAWvB,WAAW,CACa,EAAE,EAAE,MAAM,EACL,OAAO,EAAE,MAAM,GAC/C,OAAO,CAAC,iBAAiB,CAAC;IA6BvB,MAAM,CAA6B,EAAE,EAAE,MAAM;CAIpD"}
@@ -24,18 +24,31 @@ const tenant_delete_processor_1 = require("../libraries/tenant.delete.processor"
24
24
  const tenant_list_processor_1 = require("../libraries/tenant.list.processor");
25
25
  const add_tenant_dto_1 = require("../dtos/add.tenant.dto");
26
26
  const tenant_list_dto_1 = require("../dtos/tenant.list.dto");
27
- const tenant_onboarded_mail_job_1 = require("../../notification/jobs/tenant.onboarded.mail.job");
27
+ const tenant_provisioning_service_1 = require("../../auth/services/tenant.provisioning.service");
28
28
  const tenant_entity_1 = require("../../tenant/entities/tenant.entity");
29
29
  const tenant_scope_entity_1 = require("../../auth/entities/tenant.scope.entity");
30
+ const tenant_limit_data_processor_1 = require("../libraries/tenant.limit.data.processor");
31
+ const tenant_plan_data_processor_1 = require("../libraries/tenant.plan.data.processor");
32
+ const assign_tenant_plan_dto_1 = require("../dtos/assign.tenant.plan.dto");
33
+ const tenant_plan_service_1 = require("../../auth/services/tenant.plan.service");
34
+ const tenant_plan_enum_1 = require("../../auth/enums/tenant.plan.enum");
35
+ const set_tenant_limit_dto_1 = require("../dtos/set.tenant.limit.dto");
36
+ const tenant_limit_service_1 = require("../../auth/services/tenant.limit.service");
37
+ const tenant_limit_entity_1 = require("../../auth/entities/tenant.limit.entity");
38
+ const admin_audit_1 = require("../utilities/admin.audit");
39
+ const audit_action_enum_1 = require("../../common/enums/audit.action.enum");
40
+ const entity_constants_1 = require("../../constants/entity.constants");
30
41
  let AdminTenantController = class AdminTenantController {
31
- constructor(adminAccessService, tenantOnboardedMailJob, listFilterService) {
42
+ constructor(adminAccessService, tenantProvisioningService, listFilterService, tenantLimitService, tenantPlanService) {
32
43
  this.adminAccessService = adminAccessService;
33
- this.tenantOnboardedMailJob = tenantOnboardedMailJob;
44
+ this.tenantProvisioningService = tenantProvisioningService;
34
45
  this.listFilterService = listFilterService;
46
+ this.tenantLimitService = tenantLimitService;
47
+ this.tenantPlanService = tenantPlanService;
35
48
  }
36
49
  async onboard(dto) {
37
50
  const { user } = await this.adminAccessService.validateSuperAdmin();
38
- return new tenant_data_processor_1.TenantDataProcessor(user, this.tenantOnboardedMailJob).process(dto);
51
+ return new tenant_data_processor_1.TenantDataProcessor(user, this.tenantProvisioningService).process(dto);
39
52
  }
40
53
  async list(dto) {
41
54
  await this.adminAccessService.validateContentReader();
@@ -56,6 +69,63 @@ let AdminTenantController = class AdminTenantController {
56
69
  .filter((scope) => !!scope),
57
70
  });
58
71
  }
72
+ async plan(id) {
73
+ await this.adminAccessService.validateContentReader();
74
+ if (!(await tenant_entity_1.TenantEntity.existsBy({ id })))
75
+ throw new not_found_exception_1.NotFoundException('No tenant exists for this id');
76
+ return this.tenantPlanService.view(id);
77
+ }
78
+ async assignPlan(id, dto) {
79
+ const access = await this.adminAccessService.validateSuperAdmin();
80
+ return new tenant_plan_data_processor_1.TenantPlanDataProcessor(access, this.tenantPlanService).process(id, dto);
81
+ }
82
+ async endPlan(id) {
83
+ const { user } = await this.adminAccessService.validateSuperAdmin();
84
+ const before = await this.tenantPlanService.current(id);
85
+ await tenant_entity_1.TenantEntity.getRepository().manager.transaction(async (trx) => {
86
+ await this.tenantPlanService.end(id, user.id, trx);
87
+ await admin_audit_1.AdminAudit.record(trx, {
88
+ actor: user,
89
+ sourceType: entity_constants_1.baseEntityConstants.tenantPlan,
90
+ sourceId: before?.id ?? id,
91
+ action: audit_action_enum_1.AuditAction.UPDATE,
92
+ oldValue: before
93
+ ? { plan_id: before.plan_id, status: before.status }
94
+ : null,
95
+ newValue: { status: tenant_plan_enum_1.TenantPlanStatus.ENDED },
96
+ context: { tenant_id: id },
97
+ });
98
+ });
99
+ return this.tenantPlanService.view(id);
100
+ }
101
+ async limits(id) {
102
+ await this.adminAccessService.validateContentReader();
103
+ if (!(await tenant_entity_1.TenantEntity.existsBy({ id })))
104
+ throw new not_found_exception_1.NotFoundException('No tenant exists for this id');
105
+ return this.tenantLimitService.status(id);
106
+ }
107
+ async setLimit(id, dto) {
108
+ const access = await this.adminAccessService.validateAdmin();
109
+ return new tenant_limit_data_processor_1.TenantLimitDataProcessor(access).process(id, dto);
110
+ }
111
+ async removeLimit(id, limitId) {
112
+ const { user } = await this.adminAccessService.validateAdmin();
113
+ const override = await this.tenantLimitService.removeOverride(id, limitId, user.id);
114
+ await admin_audit_1.AdminAudit.record(tenant_limit_entity_1.TenantLimitEntity.getRepository().manager, {
115
+ actor: user,
116
+ sourceType: entity_constants_1.baseEntityConstants.tenantLimit,
117
+ sourceId: override.id,
118
+ action: audit_action_enum_1.AuditAction.SOFT_DELETE,
119
+ oldValue: admin_audit_1.AdminAudit.pick(override, [
120
+ 'tenant_id',
121
+ 'limit_id',
122
+ 'value',
123
+ 'expires_at',
124
+ 'note',
125
+ ]),
126
+ });
127
+ return override;
128
+ }
59
129
  async remove(id) {
60
130
  const { user } = await this.adminAccessService.validateSuperAdmin();
61
131
  return new tenant_delete_processor_1.TenantDeleteProcessor(user).process(id);
@@ -95,6 +165,75 @@ __decorate([
95
165
  __metadata("design:paramtypes", [String]),
96
166
  __metadata("design:returntype", Promise)
97
167
  ], AdminTenantController.prototype, "detail", null);
168
+ __decorate([
169
+ (0, common_1.Get)(':id/plan'),
170
+ (0, swagger_1.ApiOperation)({
171
+ summary: "A tenant's plan and plan history.",
172
+ description: '`current` is the live plan (null when none, or when it ran past `ends_at`); `history` lists every plan the tenant has been on, newest first. Requires at least the global content reader role.',
173
+ }),
174
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
175
+ __metadata("design:type", Function),
176
+ __metadata("design:paramtypes", [String]),
177
+ __metadata("design:returntype", Promise)
178
+ ], AdminTenantController.prototype, "plan", null);
179
+ __decorate([
180
+ (0, common_1.Post)(':id/plan'),
181
+ (0, swagger_1.ApiOperation)({
182
+ summary: 'Put a tenant on a plan.',
183
+ description: "Ends the current plan (kept as history) and starts `plan_id`: the tenant's scopes become exactly the plan's (API-key grants it no longer covers go with them) and the plan's limit values apply under any tenant override. `trialing` needs a future `ends_at`. Requires the global super admin role.",
184
+ }),
185
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
186
+ __param(1, (0, common_1.Body)()),
187
+ __metadata("design:type", Function),
188
+ __metadata("design:paramtypes", [String, assign_tenant_plan_dto_1.AssignTenantPlanDto]),
189
+ __metadata("design:returntype", Promise)
190
+ ], AdminTenantController.prototype, "assignPlan", null);
191
+ __decorate([
192
+ (0, common_1.Delete)(':id/plan'),
193
+ (0, swagger_1.ApiOperation)({
194
+ summary: "End a tenant's plan.",
195
+ description: 'The tenant keeps its scopes; its limits fall back to overrides and catalogue defaults. Requires the global super admin role.',
196
+ }),
197
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
198
+ __metadata("design:type", Function),
199
+ __metadata("design:paramtypes", [String]),
200
+ __metadata("design:returntype", Promise)
201
+ ], AdminTenantController.prototype, "endPlan", null);
202
+ __decorate([
203
+ (0, common_1.Get)(':id/limits'),
204
+ (0, swagger_1.ApiOperation)({
205
+ summary: "A tenant's limits.",
206
+ description: "Every catalogue limit as it applies to this tenant: `default_value`, the live `override` (value, expiry, note), the enforced `value` (null = unlimited; 0 when the tenant lacks the limit's scope), `used` and `remaining`. Requires at least the global content reader role.",
207
+ }),
208
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
209
+ __metadata("design:type", Function),
210
+ __metadata("design:paramtypes", [String]),
211
+ __metadata("design:returntype", Promise)
212
+ ], AdminTenantController.prototype, "limits", null);
213
+ __decorate([
214
+ (0, common_1.Post)(':id/limits'),
215
+ (0, swagger_1.ApiOperation)({
216
+ summary: "Set a tenant's own value for a limit.",
217
+ description: 'Creates or replaces the override of `limit_id` for this tenant. `value` null = unlimited; `expires_at` (future) returns the tenant to the default afterwards. Lowering it below current usage refuses new additions and removes nothing. Requires at least the global admin role.',
218
+ }),
219
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
220
+ __param(1, (0, common_1.Body)()),
221
+ __metadata("design:type", Function),
222
+ __metadata("design:paramtypes", [String, set_tenant_limit_dto_1.SetTenantLimitDto]),
223
+ __metadata("design:returntype", Promise)
224
+ ], AdminTenantController.prototype, "setLimit", null);
225
+ __decorate([
226
+ (0, common_1.Delete)(':id/limits/:limitId'),
227
+ (0, swagger_1.ApiOperation)({
228
+ summary: "Remove a tenant's override of a limit.",
229
+ description: 'The catalogue default applies again. Requires at least the global admin role.',
230
+ }),
231
+ __param(0, (0, common_1.Param)('id', common_1.ParseUUIDPipe)),
232
+ __param(1, (0, common_1.Param)('limitId', common_1.ParseUUIDPipe)),
233
+ __metadata("design:type", Function),
234
+ __metadata("design:paramtypes", [String, String]),
235
+ __metadata("design:returntype", Promise)
236
+ ], AdminTenantController.prototype, "removeLimit", null);
98
237
  __decorate([
99
238
  (0, common_1.Delete)(':id'),
100
239
  (0, swagger_1.ApiOperation)({
@@ -112,7 +251,9 @@ exports.AdminTenantController = AdminTenantController = __decorate([
112
251
  (0, common_1.UsePipes)(strict_validation_pipe_1.StrictValidationPipe),
113
252
  (0, common_1.Controller)('api/admin/tenants'),
114
253
  __metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
115
- tenant_onboarded_mail_job_1.TenantOnboardedMailJob,
116
- list_filter_service_1.ListFilterService])
254
+ tenant_provisioning_service_1.TenantProvisioningService,
255
+ list_filter_service_1.ListFilterService,
256
+ tenant_limit_service_1.TenantLimitService,
257
+ tenant_plan_service_1.TenantPlanService])
117
258
  ], AdminTenantController);
118
259
  //# sourceMappingURL=admin.tenant.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.tenant.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.tenant.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { CommonDataDto } from '../../common/dtos/common.data.dto';
2
+ import { LimitPeriod } from '../../auth/enums/tenant.limit.enum';
3
+ export declare class AddLimitDto extends CommonDataDto {
4
+ scope_id?: string | null;
5
+ identifier: string;
6
+ name: string;
7
+ description?: string;
8
+ default_value?: number | null;
9
+ period?: LimitPeriod | null;
10
+ }
11
+ //# sourceMappingURL=add.limit.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.limit.dto.d.ts","sourceRoot":"","sources":["../../../src/admin/dtos/add.limit.dto.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAc,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAO7E,qBAAa,WAAY,SAAQ,aAAa;IAS5C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAUzB,UAAU,EAAE,MAAM,CAAC;IAMnB,IAAI,EAAE,MAAM,CAAC;IAMb,WAAW,CAAC,EAAE,MAAM,CAAC;IAarB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAU9B,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B"}