ticket-booking-be/src/booking-gateway/booking.service.ts
2025-03-29 20:07:22 +05:30

32 lines
1.2 KiB
TypeScript

import { Inject, Injectable } from '@nestjs/common';
import { BookingGateway } from './booking.gateway';
import { SeatService } from 'src/seat/seat.service';
import { TicketService } from 'src/ticket/ticket.service';
import Ticket from 'src/ticket/ticket.entity';
import Seat from 'src/seat/seat.entity';
@Injectable()
export class BookingService {
constructor(
// @Inject('BookingGateway') private readonly bookingGateway: BookingGateway,
private readonly seatService: SeatService,
private readonly ticketService: TicketService
) { }
async bookTicket(ticket: Ticket) {
this.ticketService.upsert(ticket, true);
this.seatService.bookSeat(ticket.eventId, ticket.seatNumber);
}
async getBookedSeats(event_id) {
const bookedSeats = await this.seatService.filter(new Seat({ eventId: event_id, available: 'booked' }));
return bookedSeats;
}
async isSeatAvailable(event_id: number, seatNumber: string) {
const seat = await this.seatService.findOne(new Seat({ eventId: event_id, seatNumber: seatNumber }));
if (seat.available === 'booked') {
return false;
}
return true;
}
}