148 lines
3.2 KiB
TypeScript
148 lines
3.2 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { PrismaService } from '../prisma/prisma.service';
|
|
import { CreatePieceDto, UpdatePieceDto } from '../shared/dto/piece.dto';
|
|
|
|
@Injectable()
|
|
export class PiecesService {
|
|
constructor(private prisma: PrismaService) {}
|
|
|
|
async create(createPieceDto: CreatePieceDto) {
|
|
return this.prisma.piece.create({
|
|
data: createPieceDto,
|
|
include: {
|
|
machine: true,
|
|
composant: true,
|
|
typePiece: true,
|
|
documents: true,
|
|
constructeur: true,
|
|
pieceModel: true,
|
|
typeMachinePieceRequirement: {
|
|
include: {
|
|
typePiece: true,
|
|
},
|
|
},
|
|
customFieldValues: {
|
|
include: {
|
|
customField: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async findAll() {
|
|
return this.prisma.piece.findMany({
|
|
include: {
|
|
machine: true,
|
|
composant: true,
|
|
typePiece: true,
|
|
documents: true,
|
|
constructeur: true,
|
|
pieceModel: true,
|
|
typeMachinePieceRequirement: {
|
|
include: {
|
|
typePiece: true,
|
|
},
|
|
},
|
|
customFieldValues: {
|
|
include: {
|
|
customField: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async findOne(id: string) {
|
|
return this.prisma.piece.findUnique({
|
|
where: { id },
|
|
include: {
|
|
machine: true,
|
|
composant: true,
|
|
typePiece: true,
|
|
documents: true,
|
|
constructeur: true,
|
|
pieceModel: true,
|
|
typeMachinePieceRequirement: {
|
|
include: {
|
|
typePiece: true,
|
|
},
|
|
},
|
|
customFieldValues: {
|
|
include: {
|
|
customField: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async findByMachine(machineId: string) {
|
|
return this.prisma.piece.findMany({
|
|
where: { machineId },
|
|
include: {
|
|
machine: true,
|
|
composant: true,
|
|
typePiece: true,
|
|
documents: true,
|
|
constructeur: true,
|
|
pieceModel: true,
|
|
typeMachinePieceRequirement: {
|
|
include: {
|
|
typePiece: true,
|
|
},
|
|
},
|
|
customFieldValues: {
|
|
include: {
|
|
customField: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async findByComposant(composantId: string) {
|
|
return this.prisma.piece.findMany({
|
|
where: { composantId },
|
|
include: {
|
|
machine: true,
|
|
composant: true,
|
|
typePiece: true,
|
|
documents: true,
|
|
constructeur: true,
|
|
pieceModel: true,
|
|
typeMachinePieceRequirement: {
|
|
include: {
|
|
typePiece: true,
|
|
},
|
|
},
|
|
customFieldValues: {
|
|
include: {
|
|
customField: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
}
|
|
|
|
async update(id: string, updatePieceDto: UpdatePieceDto) {
|
|
return this.prisma.piece.update({
|
|
where: { id },
|
|
data: updatePieceDto,
|
|
include: {
|
|
machine: true,
|
|
composant: true,
|
|
typePiece: true,
|
|
documents: true,
|
|
constructeur: true,
|
|
},
|
|
});
|
|
}
|
|
|
|
async remove(id: string) {
|
|
return this.prisma.piece.delete({
|
|
where: { id },
|
|
});
|
|
}
|
|
}
|