feat(constructeurs): introduce constructors management

This commit is contained in:
Matthieu
2025-09-17 15:09:54 +02:00
parent 339f46ec24
commit 83251b532c
13 changed files with 335 additions and 14 deletions

View File

@@ -27,6 +27,7 @@ export class MachinesService {
include: {
site: true,
typeMachine: true,
constructeur: true,
},
});
@@ -57,6 +58,7 @@ export class MachinesService {
customFields: true,
},
},
constructeur: true,
composants: {
include: {
typeComposant: true,
@@ -68,8 +70,10 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
},
},
constructeur: true,
},
},
pieces: {
@@ -79,6 +83,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
},
},
customFieldValues: {
@@ -133,7 +138,7 @@ export class MachinesService {
data: {
name: component.name,
reference: component.reference || '',
constructeur: component.constructeur || '',
constructeurId: await this.resolveConstructeurId(prisma, component.constructeur),
emplacement: component.emplacement || '',
prix: component.prix || null,
machineId,
@@ -202,7 +207,7 @@ export class MachinesService {
data: {
name: piece.name,
reference: piece.reference || '',
constructeur: piece.constructeur || '',
constructeurId: await this.resolveConstructeurId(prisma, piece.constructeur),
emplacement: piece.emplacement || '',
prix: piece.prix || null,
composantId: createdComposant.id,
@@ -245,6 +250,7 @@ export class MachinesService {
data: {
name: piece.name,
machineId,
constructeurId: await this.resolveConstructeurId(prisma, piece.constructeur),
},
});
@@ -312,6 +318,7 @@ export class MachinesService {
customFields: true,
},
},
constructeur: true,
composants: {
include: {
typeComposant: true,
@@ -321,6 +328,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
pieces: {
include: {
customFieldValues: {
@@ -328,6 +336,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
},
},
},
@@ -339,6 +348,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
},
},
customFieldValues: {
@@ -361,6 +371,7 @@ export class MachinesService {
customFields: true,
},
},
constructeur: true,
composants: {
include: {
typeComposant: true,
@@ -370,6 +381,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
pieces: {
include: {
customFieldValues: {
@@ -377,6 +389,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
},
},
},
@@ -388,6 +401,7 @@ export class MachinesService {
customField: true,
},
},
constructeur: true,
},
},
customFieldValues: {
@@ -411,14 +425,34 @@ export class MachinesService {
customFields: true,
},
},
constructeur: true,
composants: {
include: {
typeComposant: true,
sousComposants: true,
pieces: true,
constructeur: true,
pieces: {
include: {
constructeur: true,
customFieldValues: {
include: {
customField: true,
},
},
},
},
},
},
pieces: {
include: {
constructeur: true,
customFieldValues: {
include: {
customField: true,
},
},
},
},
pieces: true,
customFieldValues: {
include: {
customField: true,
@@ -429,6 +463,29 @@ export class MachinesService {
});
}
private async resolveConstructeurId(prisma: any, rawName?: string) {
if (!rawName) return null
const name = String(rawName).trim()
if (!name) return null
const existing = await prisma.constructeur.findFirst({
where: {
name: {
equals: name,
mode: 'insensitive',
},
},
})
if (existing) return existing.id
const created = await prisma.constructeur.create({
data: { name },
})
return created.id
}
async remove(id: string) {
// Vérifier que la machine existe
const machine = await this.prisma.machine.findUnique({