feat: enrich piece assignment labels and document previews
This commit is contained in:
@@ -202,11 +202,27 @@ const sanitizePieces = (pieces: any[]): ComponentModelPiece[] => {
|
||||
? piece.reference.trim()
|
||||
: undefined
|
||||
|
||||
if (!typePieceId && !typePieceLabel && !reference) {
|
||||
const rawFamilyCode = typeof piece?.familyCode === 'string'
|
||||
? piece.familyCode.trim()
|
||||
: typeof piece?.typePiece?.code === 'string'
|
||||
? piece.typePiece.code.trim()
|
||||
: ''
|
||||
const familyCode = rawFamilyCode.length > 0 ? rawFamilyCode : undefined
|
||||
|
||||
const rawRole = typeof piece?.role === 'string' ? piece.role.trim() : ''
|
||||
const role = rawRole.length > 0 ? rawRole : undefined
|
||||
|
||||
if (!typePieceId && !typePieceLabel && !reference && !familyCode) {
|
||||
return null
|
||||
}
|
||||
|
||||
const result: ComponentModelPiece = {}
|
||||
if (role) {
|
||||
result.role = role
|
||||
}
|
||||
if (familyCode) {
|
||||
result.familyCode = familyCode
|
||||
}
|
||||
if (reference !== undefined) {
|
||||
result.reference = reference
|
||||
}
|
||||
@@ -519,6 +535,8 @@ const hydratePieces = (pieces: any[]): ComponentModelPiece[] => {
|
||||
typePieceId: piece?.typePieceId ?? piece?.typePiece?.id ?? '',
|
||||
typePieceLabel: piece?.typePieceLabel ?? piece?.typePiece?.name ?? '',
|
||||
reference: piece?.reference ?? '',
|
||||
familyCode: piece?.familyCode ?? piece?.typePiece?.code ?? '',
|
||||
role: piece?.role ?? '',
|
||||
}))
|
||||
}
|
||||
|
||||
@@ -590,6 +608,8 @@ const mapComponentPieces = (pieces: any[]): ComponentModelPiece[] => {
|
||||
reference: piece?.reference ?? '',
|
||||
typePieceId: piece?.typePieceId ?? piece?.typePiece?.id ?? '',
|
||||
typePieceLabel: piece?.typePieceLabel ?? piece?.typePiece?.name ?? '',
|
||||
familyCode: piece?.familyCode ?? piece?.typePiece?.code ?? '',
|
||||
role: piece?.role ?? '',
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@ export interface ComponentModelPiece {
|
||||
typePieceId?: string
|
||||
typePieceLabel?: string
|
||||
reference?: string
|
||||
familyCode?: string
|
||||
role?: string
|
||||
}
|
||||
|
||||
export interface ComponentModelStructureNode {
|
||||
@@ -119,9 +121,11 @@ const validatePiece = (
|
||||
const typePieceId = ensureString(value.typePieceId)
|
||||
const typePieceLabel = ensureString(value.typePieceLabel)
|
||||
const reference = ensureString(value.reference)
|
||||
const familyCode = ensureString((value as any).familyCode)
|
||||
const role = ensureString((value as any).role)
|
||||
|
||||
if (!typePieceId && !typePieceLabel && !reference) {
|
||||
issues.push(`${path}: au moins un identifiant ou libellé de pièce est requis`)
|
||||
if (!typePieceId && !typePieceLabel && !reference && !familyCode) {
|
||||
issues.push(`${path}: au moins un identifiant, une famille ou une référence de pièce est requis`)
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -129,6 +133,8 @@ const validatePiece = (
|
||||
...(typePieceId ? { typePieceId } : {}),
|
||||
...(typePieceLabel ? { typePieceLabel } : {}),
|
||||
...(reference ? { reference } : {}),
|
||||
...(familyCode ? { familyCode } : {}),
|
||||
...(role ? { role } : {}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user