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; } }