Map seeded component models to type identifiers

This commit is contained in:
MatthieuTD
2025-10-02 09:33:59 +02:00
parent 6f52b27efc
commit 44fd4bb8c7

View File

@@ -4311,21 +4311,27 @@ function buildComponentModelStructure(
template?.usage ?? template?.role ?? template?.notes ?? null,
);
if (pieceTypes[typeCode]) {
pieces.push(
normalizedRole
? { familyCode: typeCode, role: normalizedRole }
: { familyCode: typeCode },
);
const pieceType = pieceTypes[typeCode];
if (pieceType) {
const entry: Record<string, unknown> = { typePieceId: pieceType.id };
if (normalizedRole) {
entry.role = normalizedRole;
}
entry.familyCode = typeCode;
pieces.push(entry as ComponentModelStructure['pieces'][number]);
continue;
}
if (componentTypes[typeCode]) {
subcomponents.push(
normalizedRole
? { familyCode: typeCode, alias: normalizedRole }
: { familyCode: typeCode },
);
const subcomponentType = componentTypes[typeCode];
if (subcomponentType) {
const entry: Record<string, unknown> = {
typeComposantId: subcomponentType.id,
familyCode: typeCode,
};
if (normalizedRole) {
entry.alias = normalizedRole;
}
subcomponents.push(entry as ComponentModelStructure['subcomponents'][number]);
continue;
}
@@ -4347,6 +4353,8 @@ function buildComponentModelStructure(
? (template?.suggestedModelCodes as string[])
: [];
const componentType = typeCode ? componentTypes[typeCode] : undefined;
if (suggestedModels.length > 0) {
suggestedModels.forEach((modelCode, index) => {
const hint =
@@ -4354,21 +4362,37 @@ function buildComponentModelStructure(
? `${normalizedAlias} #${index + 1}`
: normalizedAlias;
const fallbackFamily = typeCode || String(modelCode ?? '').trim() || 'UNKNOWN';
subcomponents.push(
hint
? { familyCode: fallbackFamily, alias: hint }
: { familyCode: fallbackFamily },
);
const entry: Record<string, unknown> = hint ? { alias: hint } : {};
if (componentType) {
entry.typeComposantId = componentType.id;
entry.familyCode = typeCode;
} else {
entry.familyCode = fallbackFamily;
}
subcomponents.push(entry as ComponentModelStructure['subcomponents'][number]);
});
continue;
}
if (typeCode) {
subcomponents.push(
normalizedAlias
? { familyCode: typeCode, alias: normalizedAlias }
: { familyCode: typeCode },
);
if (componentType) {
const entry: Record<string, unknown> = {
typeComposantId: componentType.id,
familyCode: typeCode,
};
if (normalizedAlias) {
entry.alias = normalizedAlias;
}
subcomponents.push(entry as ComponentModelStructure['subcomponents'][number]);
} else {
subcomponents.push(
normalizedAlias
? { familyCode: typeCode, alias: normalizedAlias }
: { familyCode: typeCode },
);
}
continue;
}
}