From cdb0c23043fd09008d4d2389f859e57d32d79f7c Mon Sep 17 00:00:00 2001 From: Stephanos A Date: Tue, 30 Jun 2026 08:28:44 +0300 Subject: [PATCH] Routes management issue fix --- .../src/modules/schedules/routes.dto.ts | 6 +++--- .../src/modules/schedules/routes.service.ts | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/edr-passenger-api/src/modules/schedules/routes.dto.ts b/apps/edr-passenger-api/src/modules/schedules/routes.dto.ts index 21768ab8b..8339bf477 100644 --- a/apps/edr-passenger-api/src/modules/schedules/routes.dto.ts +++ b/apps/edr-passenger-api/src/modules/schedules/routes.dto.ts @@ -1,11 +1,11 @@ -import { IsString, IsInt, IsOptional, IsArray, ValidateNested, IsBoolean, IsDateString, Min } from 'class-validator'; +import { IsString, IsInt, IsNumber, IsOptional, IsArray, ValidateNested, IsBoolean, IsDateString, Min } from 'class-validator'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { Type } from 'class-transformer'; export class RouteStopInputDto { @ApiProperty({ example: 'station-uuid', description: 'Station UUID' }) @IsString() stationId: string; @ApiProperty({ example: 1, description: 'Stop order (1 = origin, ascending)' }) @IsInt() @Min(1) sequence: number; - @ApiPropertyOptional({ example: 120, description: 'Distance in km from previous stop' }) @IsOptional() @IsInt() distanceKm?: number; + @ApiPropertyOptional({ example: 120.5, description: 'Distance in km from previous stop' }) @IsOptional() @IsNumber() distanceKm?: number; } export class CreateRouteDto { @@ -34,7 +34,7 @@ export class CreateRouteDto { export class AddRouteStopDto { @ApiProperty({ example: 'station-uuid' }) @IsString() stationId: string; @ApiProperty({ example: 3 }) @IsInt() @Min(1) sequence: number; - @ApiPropertyOptional({ example: 75 }) @IsOptional() @IsInt() distanceKm?: number; + @ApiPropertyOptional({ example: 75.5 }) @IsOptional() @IsNumber() distanceKm?: number; } export class UpdateRouteDto { diff --git a/apps/edr-passenger-api/src/modules/schedules/routes.service.ts b/apps/edr-passenger-api/src/modules/schedules/routes.service.ts index c7998e9cd..d8df838ca 100644 --- a/apps/edr-passenger-api/src/modules/schedules/routes.service.ts +++ b/apps/edr-passenger-api/src/modules/schedules/routes.service.ts @@ -34,7 +34,7 @@ export class RoutesService { create: dto.stops.map(s => ({ stationId: s.stationId, sequence: s.sequence, - distanceKm: s.distanceKm, + distanceKm: s.distanceKm != null ? parseFloat(String(s.distanceKm)) : null, })), }, }, @@ -135,7 +135,12 @@ export class RoutesService { if (existing) throw new ConflictException(`Sequence ${dto.sequence} already exists on this route`); return this.prisma.routeStop.create({ - data: { routeId, stationId: dto.stationId, sequence: dto.sequence, distanceKm: dto.distanceKm }, + data: { + routeId, + stationId: dto.stationId, + sequence: dto.sequence, + distanceKm: dto.distanceKm != null ? parseFloat(String(dto.distanceKm)) : null, + }, }); }