Add optional service pricing matrix and fix admin catalog save.

Users pick per-service CPU/memory/storage at deploy; admins manage unit rates and deploy defaults. PATCH sends only fields accepted by the pricing-catalog DTO.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
keyhan
2026-05-15 19:16:20 +03:30
parent bb27c90ae4
commit 055e7a7c8d
21 changed files with 1746 additions and 257 deletions
+10
View File
@@ -312,6 +312,12 @@ export class BillingService {
('enableCustomDomain' in app
? !!(app as CalculateCostDto).enableCustomDomain
: !!(app as Application).customDomain);
const optionalRes =
'optionalServiceResources' in app
? (app as Application).optionalServiceResources
: undefined;
const dtoExtras =
'redisResources' in app ? (app as CalculateCostDto) : undefined;
return {
runtime: app.runtime,
databaseType: app.databaseType,
@@ -324,6 +330,8 @@ export class BillingService {
enableRabbitmq: !!app.enableRabbitmq,
enableElasticsearch: !!app.enableElasticsearch,
enableCustomDomain,
redisResources: optionalRes?.redis ?? dtoExtras?.redisResources,
rabbitmqResources: optionalRes?.rabbitmq ?? dtoExtras?.rabbitmqResources,
};
}
@@ -467,6 +475,8 @@ export class BillingService {
enableRabbitmq: config.enableRabbitmq,
enableElasticsearch: config.enableElasticsearch,
enableCustomDomain: config.enableCustomDomain,
redisResources: config.redisResources,
rabbitmqResources: config.rabbitmqResources,
};
}