table number
This commit is contained in:
@@ -11,10 +11,12 @@ import { SetAddressDto } from '../dto/set-address.dto';
|
||||
import { SetPaymentMethodDto } from '../dto/set-payment-method.dto';
|
||||
import { SetDeliveryMethodDto } from '../dto/set-delivery-method.dto';
|
||||
import { SetDescriptionDto } from '../dto/set-description.dto';
|
||||
import { SetTableNumberDto } from '../dto/set-table-number.dto';
|
||||
import { UserAddress } from '../../users/entities/user-address.entity';
|
||||
import { User } from '../../users/entities/user.entity';
|
||||
import { PaymentMethod } from '../../payments/entities/payment-method.entity';
|
||||
import { Delivery } from '../../delivery/entities/delivery.entity';
|
||||
import { DeliveryMethodEnum } from '../../delivery/interface/delivery';
|
||||
import { Cart, CartItem } from '../interfaces/cart.interface';
|
||||
import { CouponService } from 'src/modules/coupons/providers/coupon.service';
|
||||
import { OrderCouponDetail } from 'src/modules/orders/interface/order-status';
|
||||
@@ -608,6 +610,38 @@ export class CartService {
|
||||
return cart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set table number for cart
|
||||
*/
|
||||
async setTableNumber(
|
||||
userId: string,
|
||||
restaurantId: string,
|
||||
setTableNumberDto: SetTableNumberDto,
|
||||
): Promise<Cart> {
|
||||
const cart = await this.findOneOrFail(userId, restaurantId);
|
||||
|
||||
// If delivery method is set, validate that table number is required for DineIn
|
||||
if (cart.deliveryMethodId) {
|
||||
const deliveryMethod = await this.em.findOne(Delivery, {
|
||||
id: cart.deliveryMethodId,
|
||||
restaurant: { id: restaurantId },
|
||||
});
|
||||
|
||||
if (deliveryMethod && deliveryMethod.method === DeliveryMethodEnum.DineIn) {
|
||||
if (!setTableNumberDto.tableNumber || setTableNumberDto.tableNumber.trim() === '') {
|
||||
throw new BadRequestException('Table number is required when delivery method is DineIn');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cart.tableNumber = setTableNumberDto.tableNumber;
|
||||
cart.updatedAt = new Date().toISOString();
|
||||
|
||||
await this.saveCart(cart);
|
||||
|
||||
return cart;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recalculate cart totals (including coupon discount and tax)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user