32 lines
1.2 KiB
TypeScript
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;
|
|
}
|
|
}
|