feat: Add Model gestion for piece and component

This commit is contained in:
Matthieu
2025-09-23 15:05:33 +02:00
parent bc225bf3e8
commit e64fba3ae7
54 changed files with 1640 additions and 569 deletions

View File

@@ -1,6 +1,17 @@
import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
} from '@nestjs/common';
import { ComposantsService } from './composants.service';
import { CreateComposantDto, UpdateComposantDto } from '../shared/dto/composant.dto';
import {
CreateComposantDto,
UpdateComposantDto,
} from '../shared/dto/composant.dto';
@Controller('composants')
export class ComposantsController {
@@ -32,7 +43,10 @@ export class ComposantsController {
}
@Patch(':id')
update(@Param('id') id: string, @Body() updateComposantDto: UpdateComposantDto) {
update(
@Param('id') id: string,
@Body() updateComposantDto: UpdateComposantDto,
) {
return this.composantsService.update(id, updateComposantDto);
}

View File

@@ -4,6 +4,6 @@ import { ComposantsService } from './composants.service';
@Module({
controllers: [ComposantsController],
providers: [ComposantsService]
providers: [ComposantsService],
})
export class ComposantsModule {}

View File

@@ -20,7 +20,10 @@ describe('ComposantsService', () => {
};
const module: TestingModule = await Test.createTestingModule({
providers: [ComposantsService, { provide: PrismaService, useValue: prisma }],
providers: [
ComposantsService,
{ provide: PrismaService, useValue: prisma },
],
}).compile();
service = module.get<ComposantsService>(ComposantsService);
@@ -53,9 +56,9 @@ describe('ComposantsService', () => {
await expect(service.create(dto)).resolves.toEqual(created);
expect(prisma.composant.create).toHaveBeenCalled();
expect(
prisma.composant.create.mock.calls[0][0].data.typeComposantId,
).toBe('type-comp-1');
expect(prisma.composant.create.mock.calls[0][0].data.typeComposantId).toBe(
'type-comp-1',
);
});
it('should refuse creation when requirement does not belong to machine skeleton', async () => {

View File

@@ -1,6 +1,9 @@
import { BadRequestException, Injectable } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';
import { CreateComposantDto, UpdateComposantDto } from '../shared/dto/composant.dto';
import {
CreateComposantDto,
UpdateComposantDto,
} from '../shared/dto/composant.dto';
@Injectable()
export class ComposantsService {
@@ -324,9 +327,9 @@ export class ComposantsService {
async findHierarchy(machineId: string) {
// Récupérer tous les composants de premier niveau (sans parent)
const rootComposants = await this.prisma.composant.findMany({
where: {
where: {
machineId,
parentComposantId: null
parentComposantId: null,
},
include: {
typeComposant: true,