Skip to content

Commit 7e17d93

Browse files
committed
Merge branch 'dev'
2 parents e1e6088 + baeba36 commit 7e17d93

File tree

27 files changed

+253
-113
lines changed

27 files changed

+253
-113
lines changed

README.md

Lines changed: 156 additions & 86 deletions
Large diffs are not rendered by default.

back/src/domains/reservation/entity/reservedSeat.entity.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1-
import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, Unique } from 'typeorm';
1+
import {
2+
Column,
3+
DeleteDateColumn,
4+
Entity,
5+
JoinColumn,
6+
ManyToOne,
7+
PrimaryGeneratedColumn,
8+
Unique,
9+
} from 'typeorm';
210

311
import { Event } from '../../event/entity/event.entity';
412

513
import { Reservation } from './reservation.entity';
614

715
@Entity({ name: 'Reserved_Seat' })
8-
@Unique(['row', 'col', 'sectionName', 'event'])
16+
@Unique(['row', 'col', 'sectionName', 'event', 'deletedAt'])
917
export class ReservedSeat {
1018
@PrimaryGeneratedColumn('increment')
1119
id: number;
1220

21+
@DeleteDateColumn({ type: 'timestamp', name: 'deleted_at', nullable: true })
22+
deletedAt: Date;
23+
1324
@Column({ type: 'varchar', length: 255, name: 'section_name' })
1425
sectionName: string;
1526

back/src/domains/reservation/repository/reservation.repository.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
import { Injectable } from '@nestjs/common';
22
import { InjectRepository } from '@nestjs/typeorm';
3-
import { MoreThanOrEqual, Repository } from 'typeorm';
3+
import { DataSource, MoreThanOrEqual, Repository } from 'typeorm';
44

55
import { Reservation } from '../entity/reservation.entity';
66

7+
import { ReservedSeatRepository } from './reservedSeat.repository';
8+
79
@Injectable()
810
export class ReservationRepository {
9-
constructor(@InjectRepository(Reservation) private ReservationRepository: Repository<Reservation>) {}
11+
constructor(
12+
@InjectRepository(Reservation) private ReservationRepository: Repository<Reservation>,
13+
private readonly reservedSeatRepository: ReservedSeatRepository,
14+
private readonly dataSource: DataSource,
15+
) {}
1016

1117
async selectAllReservationAfterNowByUserWithAll(userId: number): Promise<Reservation[]> {
1218
return await this.ReservationRepository.find({
@@ -28,9 +34,12 @@ export class ReservationRepository {
2834
}
2935

3036
async deleteReservationByIdMatchedUserId(userId: number, reservationId: number) {
31-
return await this.ReservationRepository.softDelete({
32-
id: reservationId,
33-
user: { id: userId },
37+
await this.dataSource.transaction(async () => {
38+
await this.reservedSeatRepository.deleteReservedSeatByReservation(reservationId);
39+
await this.ReservationRepository.softDelete({
40+
id: reservationId,
41+
user: { id: userId },
42+
});
3443
});
3544
}
3645

back/src/domains/reservation/repository/reservedSeat.repository.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,10 @@ export class ReservedSeatRepository {
1212
const reservedSeat = this.reservedSeatRepository.create(reservedSeatData);
1313
return this.reservedSeatRepository.save(reservedSeat);
1414
}
15+
16+
async deleteReservedSeatByReservation(reservationId: number) {
17+
return await this.reservedSeatRepository.softDelete({
18+
reservation: { id: reservationId },
19+
});
20+
}
1521
}

front/public/images/poster0.png

327 KB
Loading

front/public/images/poster1.jpg

-82.9 KB
Binary file not shown.

front/public/images/poster1.png

675 KB
Loading

front/public/images/poster2.jpg

-114 KB
Binary file not shown.

front/public/images/poster2.png

281 KB
Loading

front/public/images/poster3.jpg

-117 KB
Binary file not shown.

0 commit comments

Comments
 (0)