feat(constructeurs): introduce constructors management
This commit is contained in:
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user