feat: persist type requirement order
This commit is contained in:
@@ -39,6 +39,7 @@ describe('TypeMachineMapper', () => {
|
||||
maxCount: 4,
|
||||
required: true,
|
||||
allowNewModels: false,
|
||||
orderIndex: 0,
|
||||
});
|
||||
expect(input.pieceRequirements?.create?.[0]).toMatchObject({
|
||||
label: 'Piece',
|
||||
@@ -46,6 +47,7 @@ describe('TypeMachineMapper', () => {
|
||||
maxCount: 2,
|
||||
required: false,
|
||||
allowNewModels: true,
|
||||
orderIndex: 0,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -75,11 +77,13 @@ describe('TypeMachineMapper', () => {
|
||||
typeComposantId: 'comp-id',
|
||||
minCount: 2,
|
||||
maxCount: 4,
|
||||
orderIndex: 0,
|
||||
});
|
||||
expect(piece[0]).toMatchObject({
|
||||
typePieceId: 'piece-id',
|
||||
minCount: 0,
|
||||
maxCount: 2,
|
||||
orderIndex: 0,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -13,15 +13,18 @@ type RequirementDto = {
|
||||
allowNewModels?: boolean | null;
|
||||
typeComposantId?: string;
|
||||
typePieceId?: string;
|
||||
orderIndex?: number | null;
|
||||
};
|
||||
|
||||
export const TYPE_MACHINE_DEFAULT_INCLUDE: Prisma.TypeMachineInclude = {
|
||||
customFields: { select: CUSTOM_FIELD_SELECT },
|
||||
componentRequirements: {
|
||||
include: { typeComposant: true },
|
||||
orderBy: { orderIndex: 'asc' },
|
||||
},
|
||||
pieceRequirements: {
|
||||
include: { typePiece: true },
|
||||
orderBy: { orderIndex: 'asc' },
|
||||
},
|
||||
};
|
||||
|
||||
@@ -110,12 +113,13 @@ export class TypeMachineMapper {
|
||||
}
|
||||
|
||||
return {
|
||||
create: requirements.map((requirement) => ({
|
||||
create: requirements.map((requirement, index) => ({
|
||||
label: requirement.label ?? null,
|
||||
minCount: requirement.minCount ?? 1,
|
||||
maxCount: requirement.maxCount ?? null,
|
||||
required: requirement.required ?? true,
|
||||
allowNewModels: requirement.allowNewModels ?? true,
|
||||
orderIndex: requirement.orderIndex ?? index,
|
||||
typeComposant: requirement.typeComposantId
|
||||
? {
|
||||
connect: { id: requirement.typeComposantId },
|
||||
@@ -134,12 +138,13 @@ export class TypeMachineMapper {
|
||||
return [];
|
||||
}
|
||||
|
||||
return requirements.map((requirement) => ({
|
||||
return requirements.map((requirement, index) => ({
|
||||
label: requirement.label ?? null,
|
||||
minCount: requirement.minCount ?? 1,
|
||||
maxCount: requirement.maxCount ?? null,
|
||||
required: requirement.required ?? true,
|
||||
allowNewModels: requirement.allowNewModels ?? true,
|
||||
orderIndex: requirement.orderIndex ?? index,
|
||||
typeComposantId: requirement.typeComposantId!,
|
||||
}));
|
||||
}
|
||||
@@ -154,12 +159,13 @@ export class TypeMachineMapper {
|
||||
}
|
||||
|
||||
return {
|
||||
create: requirements.map((requirement) => ({
|
||||
create: requirements.map((requirement, index) => ({
|
||||
label: requirement.label ?? null,
|
||||
minCount: requirement.minCount ?? 0,
|
||||
maxCount: requirement.maxCount ?? null,
|
||||
required: requirement.required ?? false,
|
||||
allowNewModels: requirement.allowNewModels ?? true,
|
||||
orderIndex: requirement.orderIndex ?? index,
|
||||
typePiece: requirement.typePieceId
|
||||
? {
|
||||
connect: { id: requirement.typePieceId },
|
||||
@@ -178,12 +184,13 @@ export class TypeMachineMapper {
|
||||
return [];
|
||||
}
|
||||
|
||||
return requirements.map((requirement) => ({
|
||||
return requirements.map((requirement, index) => ({
|
||||
label: requirement.label ?? null,
|
||||
minCount: requirement.minCount ?? 0,
|
||||
maxCount: requirement.maxCount ?? null,
|
||||
required: requirement.required ?? false,
|
||||
allowNewModels: requirement.allowNewModels ?? true,
|
||||
orderIndex: requirement.orderIndex ?? index,
|
||||
typePieceId: requirement.typePieceId!,
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -79,6 +79,10 @@ export class TypeMachineComponentRequirementDto {
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
allowNewModels?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
orderIndex?: number;
|
||||
}
|
||||
|
||||
export class TypeMachinePieceRequirementDto {
|
||||
@@ -104,6 +108,10 @@ export class TypeMachinePieceRequirementDto {
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
allowNewModels?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
orderIndex?: number;
|
||||
}
|
||||
|
||||
export class CreateTypeMachineDto {
|
||||
|
||||
Reference in New Issue
Block a user