diff --git a/src/app/orders/components/order/order.component.html b/src/app/orders/components/order/order.component.html index 7fceb50..ff496ab 100644 --- a/src/app/orders/components/order/order.component.html +++ b/src/app/orders/components/order/order.component.html @@ -16,9 +16,11 @@ Seat: {{ order.seatNumber }}
- Carriage type: {{ order.carriage }} + Carriage type: {{ order.carriage?.carriageName }} +
+
+ Carriage №: {{ order.carriage?.carriageOrder }}
- // TBD: display carriage number
Price: {{ order.price | currency: 'USD' : 'symbol' : '1.0-0' }}
diff --git a/src/app/orders/components/order/order.component.ts b/src/app/orders/components/order/order.component.ts index 635adcd..be0d9b9 100644 --- a/src/app/orders/components/order/order.component.ts +++ b/src/app/orders/components/order/order.component.ts @@ -8,8 +8,8 @@ import { Subscription } from 'rxjs'; import { User } from '@/app/api/models/order'; import { OrdersService } from '@/app/api/ordersService/orders.service'; import { ProfileService } from '@/app/api/profileService/profile.service'; +import { UserOrder } from '@/app/orders/models/userOrder.model'; import POSITION_DIRECTION from '@/app/shared/directives/position/constants/position.constants'; -import { UserOrder } from '@/app/shared/models/userOrder.model'; import { ModalService } from '@/app/shared/services/modal/modal.service'; import { USER_MESSAGE } from '@/app/shared/services/userMessage/constants/user-messages'; import { UserMessageService } from '@/app/shared/services/userMessage/user-message.service'; diff --git a/src/app/orders/components/orders-list/orders-list.component.ts b/src/app/orders/components/orders-list/orders-list.component.ts index 31434fb..6c94373 100644 --- a/src/app/orders/components/orders-list/orders-list.component.ts +++ b/src/app/orders/components/orders-list/orders-list.component.ts @@ -5,9 +5,9 @@ import { PaginatorModule, PaginatorState } from 'primeng/paginator'; import { User } from '@/app/api/models/order'; import { OrdersService } from '@/app/api/ordersService/orders.service'; -import { UserOrder } from '@/app/shared/models/userOrder.model'; -import { UserOrderService } from '@/app/shared/services/data/userOrder/user-order.service'; +import { UserOrder } from '@/app/orders/models/userOrder.model'; +import { UserOrderService } from '../../services/userOrder/user-order.service'; import { OrderComponent } from '../order/order.component'; @Component({ diff --git a/src/app/shared/models/userOrder.model.ts b/src/app/orders/models/userOrder.model.ts similarity index 75% rename from src/app/shared/models/userOrder.model.ts rename to src/app/orders/models/userOrder.model.ts index 6f4c68c..adcc789 100644 --- a/src/app/shared/models/userOrder.model.ts +++ b/src/app/orders/models/userOrder.model.ts @@ -1,3 +1,5 @@ +import { TrainCarriage } from '@/app/shared/models/trainCarriage.model'; + export interface UserOrder { orderId: number; rideId: number; @@ -11,6 +13,6 @@ export interface UserOrder { tripEndStationId: number; tripDepartureDate: string; tripArrivalDate: string; - carriage: string; + carriage: TrainCarriage | null; price: number; } diff --git a/src/app/orders/pages/orders/orders.component.ts b/src/app/orders/pages/orders/orders.component.ts index dafb391..3ba1065 100644 --- a/src/app/orders/pages/orders/orders.component.ts +++ b/src/app/orders/pages/orders/orders.component.ts @@ -8,9 +8,9 @@ import { CarriageService } from '@/app/api/carriagesService/carriage.service'; import { OrdersService } from '@/app/api/ordersService/orders.service'; import { StationsService } from '@/app/api/stationsService/stations.service'; import { AuthService } from '@/app/auth/services/auth-service/auth.service'; -import { UserOrderService } from '@/app/shared/services/data/userOrder/user-order.service'; import { OrdersListComponent } from '../../components/orders-list/orders-list.component'; +import { UserOrderService } from '../../services/userOrder/user-order.service'; const imgUrl = '/img/png/no-results.webp'; diff --git a/src/app/shared/services/data/userOrder/user-order.service.spec.ts b/src/app/orders/services/userOrder/user-order.service.spec.ts similarity index 100% rename from src/app/shared/services/data/userOrder/user-order.service.spec.ts rename to src/app/orders/services/userOrder/user-order.service.spec.ts diff --git a/src/app/shared/services/data/userOrder/user-order.service.ts b/src/app/orders/services/userOrder/user-order.service.ts similarity index 80% rename from src/app/shared/services/data/userOrder/user-order.service.ts rename to src/app/orders/services/userOrder/user-order.service.ts index f821a87..4c2410a 100644 --- a/src/app/shared/services/data/userOrder/user-order.service.ts +++ b/src/app/orders/services/userOrder/user-order.service.ts @@ -2,12 +2,11 @@ import { inject, Injectable, signal } from '@angular/core'; import { Order } from '@/app/api/models/order'; import { OrdersService } from '@/app/api/ordersService/orders.service'; -import { UserOrder } from '@/app/shared/models/userOrder.model'; - -import { TripCarriagesService } from '../tripCarriages/trip-carriages.service'; -import { TripDatesService } from '../tripDates/trip-dates.service'; -import { TripPriceService } from '../tripPrice/trip-price.service'; -import { TripStationsService } from '../tripStations/trip-stations.service'; +import { UserOrder } from '@/app/orders/models/userOrder.model'; +import { TripCarriagesService } from '@/app/shared/services/data/tripCarriages/trip-carriages.service'; +import { TripDatesService } from '@/app/shared/services/data/tripDates/trip-dates.service'; +import { TripPriceService } from '@/app/shared/services/data/tripPrice/trip-price.service'; +import { TripStationsService } from '@/app/shared/services/data/tripStations/trip-stations.service'; @Injectable({ providedIn: 'root', @@ -48,11 +47,10 @@ export class UserOrderService { ); const freeSeatsMap = this.tripCarriagesService.calculateFreeSeats(trainCarriages); const carriageInfo = this.tripCarriagesService.createCarriageInfo(carriages, aggregatedPriceMap, freeSeatsMap); - const carriage = this.tripCarriagesService.findUserCarriage(seatId, trainCarriages) ?? ''; - const price = this.tripPriceService.getCarriagePrice(carriage, carriageInfo); + const carriage = this.tripCarriagesService.findCarriageBySeat(seatId, trainCarriages) ?? null; + const price = this.tripPriceService.getCarriagePrice(carriage!.carriageName, carriageInfo); return { orderId: id, - rideId, routeId, seatNumber: seatId, diff --git a/src/app/shared/services/data/tripCarriages/trip-carriages.service.ts b/src/app/shared/services/data/tripCarriages/trip-carriages.service.ts index 3a0ae98..5ebecf6 100644 --- a/src/app/shared/services/data/tripCarriages/trip-carriages.service.ts +++ b/src/app/shared/services/data/tripCarriages/trip-carriages.service.ts @@ -7,6 +7,7 @@ import { CarriageInfo } from '@/app/shared/models/carriageInfo.model'; import { CarriageNameMap } from '@/app/shared/models/carriageNameMap.model'; import { FreeSeatsMap } from '@/app/shared/models/freeSeatsMap.model'; import { PriceMap } from '@/app/shared/models/priceMap.model'; +import { TrainCarriage } from '@/app/shared/models/trainCarriage.model'; import { TrainCarriages } from '@/app/shared/models/trainCarriages.model'; import { TripIndices } from '@/app/shared/models/tripIndices.model'; @@ -136,10 +137,10 @@ export class TripCarriagesService { return freeSeatsMap; } - public findUserCarriage(seatNumber: number, trainCarriages: TrainCarriages): string { + public findCarriageBySeat(seatNumber: number, trainCarriages: TrainCarriages): TrainCarriage | null { const carriage = Object.values(trainCarriages).find( (crg) => seatNumber >= crg.firstSeat && seatNumber <= crg.lastSeat, ); - return carriage ? carriage.carriageName : ''; + return carriage || null; } }