diff --git a/src/modules/cart/providers/cart.service.ts b/src/modules/cart/providers/cart.service.ts index 2af7fcf..028fd6b 100644 --- a/src/modules/cart/providers/cart.service.ts +++ b/src/modules/cart/providers/cart.service.ts @@ -318,7 +318,7 @@ export class CartService { } cart.paymentMethodId = setPaymentMethodDto.paymentMethodId; - cart.paymentMethodFee = Number(restaurantPaymentMethod.price) || 0; + // cart.paymentMethodFee = Number(restaurantPaymentMethod.price) || 0; // Recalculate cart totals to include payment method fee await this.recalculateCartTotals(cart); @@ -374,15 +374,16 @@ export class CartService { // Get payment method fee if payment method is set let paymentMethodFee = 0; - if (cart.paymentMethodId) { - const restaurantPaymentMethod = await this.em.findOne(RestaurantPaymentMethod, { - restaurant: { id: cart.restaurantId }, - paymentMethod: { id: cart.paymentMethodId }, - }); - if (restaurantPaymentMethod) { - paymentMethodFee = Number(restaurantPaymentMethod.price) || 0; - } - } + // if (cart.paymentMethodId) { + // const restaurantPaymentMethod = await this.em.findOne(RestaurantPaymentMethod, { + // restaurant: { id: cart.restaurantId }, + // paymentMethod: { id: cart.paymentMethodId }, + // }); + // if (restaurantPaymentMethod) { + // paymentMethodFee = Number(restaurantPaymentMethod.price) || 0; + // paymentMethodFee = 1; + // } + // } cart.paymentMethodFee = paymentMethodFee; // Final price includes items, discounts, VAT, and payment method fee diff --git a/src/modules/payments/controllers/restaurant-payment-method.controller.ts b/src/modules/payments/controllers/restaurant-payment-method.controller.ts index 4f3a932..6b01825 100644 --- a/src/modules/payments/controllers/restaurant-payment-method.controller.ts +++ b/src/modules/payments/controllers/restaurant-payment-method.controller.ts @@ -30,38 +30,41 @@ export class RestaurantPaymentMethodController { return this.restaurantPaymentMethodService.create(restId, createRestaurantPaymentMethodDto); } - @Get(':paymentMethodId') - @ApiOperation({ summary: 'Get restaurant payment methods by payment method ID' }) - @ApiParam({ name: 'paymentMethodId', type: 'string', description: 'Payment method ID' }) + @Get(':restaurantPaymentMethodId') + @ApiOperation({ summary: 'Get restaurant payment method by payment method ID' }) + @ApiParam({ name: 'restaurantPaymentMethodId', type: 'string', description: 'restaurantPaymentMethodId method ID' }) @ApiOkResponse({ description: 'List of restaurant payment methods for the payment method' }) - findByPaymentMethod(@Param('paymentMethodId') paymentMethodId: string) { - return this.restaurantPaymentMethodService.findByPaymentMethod(paymentMethodId); + findByPaymentMethod(@Param('restaurantPaymentMethodId') restaurantPaymentMethodId: string) { + return this.restaurantPaymentMethodService.findByPaymentMethod(restaurantPaymentMethodId); } @Get() - @ApiOperation({ summary: 'Get a restaurant payment method by ID' }) + @ApiOperation({ summary: 'Get restaurant all payment methods ' }) @ApiOkResponse({ description: 'Restaurant payment method found' }) @ApiNotFoundResponse({ description: 'Restaurant payment method not found' }) findByRestaurant(@RestId() restId: string) { return this.restaurantPaymentMethodService.findByRestaurant(restId); } - @Patch(':id') + @Patch(':restaurantPaymentMethodId') @ApiOperation({ summary: 'Update a restaurant payment method' }) - @ApiParam({ name: 'id', type: 'string', description: 'Restaurant payment method ID' }) + @ApiParam({ name: 'restaurantPaymentMethodId', type: 'string', description: 'Restaurant payment method ID' }) @ApiBody({ type: UpdateRestaurantPaymentMethodDto }) @ApiOkResponse({ description: 'Restaurant payment method updated successfully' }) @ApiNotFoundResponse({ description: 'Restaurant payment method not found' }) - update(@Param('id') id: string, @Body() updateRestaurantPaymentMethodDto: UpdateRestaurantPaymentMethodDto) { - return this.restaurantPaymentMethodService.update(id, updateRestaurantPaymentMethodDto); + update( + @Param('restaurantPaymentMethodId') restaurantPaymentMethodId: string, + @Body() updateRestaurantPaymentMethodDto: UpdateRestaurantPaymentMethodDto, + ) { + return this.restaurantPaymentMethodService.update(restaurantPaymentMethodId, updateRestaurantPaymentMethodDto); } - @Delete(':id') + @Delete(':restaurantPaymentMethodId') @ApiOperation({ summary: 'Delete a restaurant payment method' }) - @ApiParam({ name: 'id', type: 'string', description: 'Restaurant payment method ID' }) + @ApiParam({ name: 'restaurantPaymentMethodId', type: 'string', description: 'Restaurant payment method ID' }) @ApiOkResponse({ description: 'Restaurant payment method deleted successfully' }) @ApiNotFoundResponse({ description: 'Restaurant payment method not found' }) - remove(@Param('id') id: string) { - return this.restaurantPaymentMethodService.remove(id); + remove(@Param('restaurantPaymentMethodId') restaurantPaymentMethodId: string) { + return this.restaurantPaymentMethodService.remove(restaurantPaymentMethodId); } } diff --git a/src/modules/payments/dto/update-restaurant-payment-method.dto.ts b/src/modules/payments/dto/update-restaurant-payment-method.dto.ts index 014d020..c395c92 100644 --- a/src/modules/payments/dto/update-restaurant-payment-method.dto.ts +++ b/src/modules/payments/dto/update-restaurant-payment-method.dto.ts @@ -1,16 +1,5 @@ import { PartialType } from '@nestjs/mapped-types'; import { CreateRestaurantPaymentMethodDto } from './create-restaurant-payment-method.dto'; -import { IsString, IsOptional } from 'class-validator'; -import { ApiProperty } from '@nestjs/swagger'; -export class UpdateRestaurantPaymentMethodDto extends PartialType(CreateRestaurantPaymentMethodDto) { - @ApiProperty({ description: 'Restaurant payment method ID' }) - @IsString() - id!: string; - - @ApiProperty({ description: 'Restaurant ID', required: false }) - @IsOptional() - @IsString() - restaurantId?: string; -} +export class UpdateRestaurantPaymentMethodDto extends PartialType(CreateRestaurantPaymentMethodDto) {} diff --git a/src/modules/payments/entities/restaurant-payment-method.entity.ts b/src/modules/payments/entities/restaurant-payment-method.entity.ts index b7d3822..ef92004 100644 --- a/src/modules/payments/entities/restaurant-payment-method.entity.ts +++ b/src/modules/payments/entities/restaurant-payment-method.entity.ts @@ -16,8 +16,6 @@ export class RestaurantPaymentMethod extends BaseEntity { @Property({ nullable: true }) merchantId?: string; - @Property({ type: 'decimal', precision: 10, scale: 2, default: 0 }) - price: number = 0; @Property({ type: 'boolean', default: true }) isActive: boolean = true; diff --git a/src/modules/payments/services/restaurant-payment-method.service.ts b/src/modules/payments/services/restaurant-payment-method.service.ts index 531c808..a5c7138 100644 --- a/src/modules/payments/services/restaurant-payment-method.service.ts +++ b/src/modules/payments/services/restaurant-payment-method.service.ts @@ -67,9 +67,9 @@ export class RestaurantPaymentMethodService { ); } - async findByPaymentMethod(paymentMethodId: string): Promise { + async findByPaymentMethod(restPaymentMethodId: string): Promise { return this.restaurantPaymentMethodRepository.find( - { paymentMethod: { id: paymentMethodId } }, + { id: restPaymentMethodId }, { populate: ['restaurant', 'paymentMethod'] }, ); } @@ -91,14 +91,6 @@ export class RestaurantPaymentMethodService { ): Promise { const restaurantPaymentMethod = await this.findOne(id); - if (updateRestaurantPaymentMethodDto.restaurantId) { - const restaurant = await this.em.findOne(Restaurant, { id: updateRestaurantPaymentMethodDto.restaurantId }); - if (!restaurant) { - throw new NotFoundException(`Restaurant with ID ${updateRestaurantPaymentMethodDto.restaurantId} not found`); - } - restaurantPaymentMethod.restaurant = restaurant; - } - if (updateRestaurantPaymentMethodDto.paymentMethodId) { const paymentMethod = await this.em.findOne(PaymentMethod, { id: updateRestaurantPaymentMethodDto.paymentMethodId, diff --git a/src/seeders/DatabaseSeeder.ts b/src/seeders/DatabaseSeeder.ts index 20b9820..f10cf59 100644 --- a/src/seeders/DatabaseSeeder.ts +++ b/src/seeders/DatabaseSeeder.ts @@ -225,7 +225,6 @@ export class DatabaseSeeder extends Seeder { restaurant, paymentMethod, isActive: true, - price: 100_000, }); em.persist(restaurantPaymentMethod); }