fix(completeness): evaluate all available attributes proportionally when no attributes are explicitly required
This commit is contained in:
@@ -121,6 +121,7 @@ export class CompletenessService {
|
||||
|
||||
const allAttributes = Array.from(attributesMap.values());
|
||||
const requiredAttributes = allAttributes.filter(attr => attr.is_required);
|
||||
const evaluatedAttributes = requiredAttributes.length > 0 ? requiredAttributes : allAttributes;
|
||||
|
||||
// Resolve required asset types dynamically across all assigned asset families
|
||||
const requiredAssetTypes = [];
|
||||
@@ -156,7 +157,7 @@ export class CompletenessService {
|
||||
|
||||
// 1. Validate required attributes
|
||||
const filledAttrIds = (product.attributeValues || []).map(av => av.attribute_id);
|
||||
for (const attr of requiredAttributes) {
|
||||
for (const attr of evaluatedAttributes) {
|
||||
if (filledAttrIds.includes(attr.id)) {
|
||||
fulfilledCount++;
|
||||
} else {
|
||||
@@ -199,7 +200,7 @@ export class CompletenessService {
|
||||
}
|
||||
}
|
||||
|
||||
const totalCount = requiredAttributes.length + uniqueRequiredAssetTypes.length + requiredChannels.length + requiredGeneral.length;
|
||||
const totalCount = evaluatedAttributes.length + uniqueRequiredAssetTypes.length + requiredChannels.length + requiredGeneral.length;
|
||||
const percentage = totalCount > 0 ? Math.round((fulfilledCount / totalCount) * 100) : 100;
|
||||
|
||||
// Upsert generic default completeness
|
||||
|
||||
Reference in New Issue
Block a user