diff --git a/be/src/restaurant/entities/restaurant.entity.ts b/be/src/restaurant/entities/restaurant.entity.ts index 914a9cca..52013b25 100644 --- a/be/src/restaurant/entities/restaurant.entity.ts +++ b/be/src/restaurant/entities/restaurant.entity.ts @@ -5,8 +5,12 @@ import { CreateDateColumn, UpdateDateColumn, Unique, + OneToMany, } from "typeorm"; import { Point } from "geojson"; +import { ReviewInfoEntity } from "src/review/entities/review.entity"; +import { User } from "src/user/entities/user.entity"; +import { UserRestaurantListEntity } from "src/user/entities/user.restaurantlist.entity"; @Unique("unique_name_location", ["name", "location"]) @Entity("restaurant") @@ -45,4 +49,10 @@ export class RestaurantInfoEntity { @UpdateDateColumn({ name: "updated_at" }) updatedAt: Date; + + @OneToMany(() => UserRestaurantListEntity, userRestaurant => userRestaurant.restaurant) + userRestaurant: UserRestaurantListEntity + + @OneToMany(() => ReviewInfoEntity, review => review.restaurant) + review: ReviewInfoEntity } diff --git a/be/src/review/entities/review.entity.ts b/be/src/review/entities/review.entity.ts index f298d531..e87dede0 100644 --- a/be/src/review/entities/review.entity.ts +++ b/be/src/review/entities/review.entity.ts @@ -5,23 +5,17 @@ import { CreateDateColumn, ManyToOne, JoinColumn, + OneToOne, } from "typeorm"; import { User } from "src/user/entities/user.entity"; import { RestaurantInfoEntity } from "src/restaurant/entities/restaurant.entity"; +import { UserRestaurantListEntity } from "src/user/entities/user.restaurantlist.entity"; @Entity("review") export class ReviewInfoEntity { @PrimaryGeneratedColumn("increment") id: number; - @ManyToOne(() => User) - @JoinColumn({ name: "user_id" }) - user: User; - - @ManyToOne(() => RestaurantInfoEntity) - @JoinColumn({ name: "restaurant_id" }) - restaurant: RestaurantInfoEntity; - @Column({ type: "boolean" }) visitMethod: boolean; @@ -45,4 +39,15 @@ export class ReviewInfoEntity { @CreateDateColumn({ name: "created_at" }) createdAt: Date; + + @ManyToOne(() => User) + @JoinColumn({ name: "user_id" }) + user: User; + + @ManyToOne(() => RestaurantInfoEntity) + @JoinColumn({ name: "restaurant_id" }) + restaurant: RestaurantInfoEntity; + + @OneToOne(() => UserRestaurantListEntity) + userRestaurant: UserRestaurantListEntity } diff --git a/be/src/user/entities/user.entity.ts b/be/src/user/entities/user.entity.ts index 02e7a19d..b9d15f77 100644 --- a/be/src/user/entities/user.entity.ts +++ b/be/src/user/entities/user.entity.ts @@ -5,7 +5,11 @@ import { CreateDateColumn, UpdateDateColumn, DeleteDateColumn, + OneToMany, } from "typeorm"; +import { FollowEntity } from "./user.followList.entity"; +import { UserRestaurantListEntity } from "./user.restaurantlist.entity"; +import { ReviewInfoEntity } from "src/review/entities/review.entity"; @Entity() export class User { @@ -41,4 +45,16 @@ export class User { @UpdateDateColumn({ type: "timestamp" }) updated_at: Date; -} + + @OneToMany(() => FollowEntity, follow => follow.followingUserId) + following: FollowEntity[] + + @OneToMany(() => FollowEntity, follow => follow.followedUserId) + follower: FollowEntity[] + + @OneToMany(() => UserRestaurantListEntity, list => list.userId) + restaurant: UserRestaurantListEntity[] + + @OneToMany(() => ReviewInfoEntity, review => review.user) + review: UserRestaurantListEntity[] +} \ No newline at end of file diff --git a/be/src/user/entities/user.followList.entity.ts b/be/src/user/entities/user.followList.entity.ts index b45e5c5c..cd6a5420 100644 --- a/be/src/user/entities/user.followList.entity.ts +++ b/be/src/user/entities/user.followList.entity.ts @@ -10,11 +10,9 @@ import { User } from "./user.entity"; @Entity("follow") export class FollowEntity { - @ManyToOne(() => User) @PrimaryColumn({ name: "following_user_id" }) followingUserId: number; - @ManyToOne(() => User) @PrimaryColumn({ name: "followed_user_id" }) followedUserId: number; @@ -23,4 +21,12 @@ export class FollowEntity { @DeleteDateColumn({ name: "deleted_at", nullable: true, type: "timestamp" }) deletedAt: Date | null; + + @ManyToOne(() => User) + @JoinColumn({ name: "following_user_id" }) + followingUser: User; + + @ManyToOne(() => User) + @JoinColumn({ name: "followed_user_id" }) + followedUser: User; } diff --git a/be/src/user/entities/user.restaurantlist.entity.ts b/be/src/user/entities/user.restaurantlist.entity.ts index e3c7cbec..59949a6a 100644 --- a/be/src/user/entities/user.restaurantlist.entity.ts +++ b/be/src/user/entities/user.restaurantlist.entity.ts @@ -12,21 +12,29 @@ import { ReviewInfoEntity } from "src/review/entities/review.entity"; @Entity("user_restaurant_lists") export class UserRestaurantListEntity { - @ManyToOne(() => User) @PrimaryColumn({ name: "user_id" }) userId: number; - @ManyToOne(() => RestaurantInfoEntity) @PrimaryColumn({ name: "restaurant_id" }) restaurantId: number; - @ManyToOne(() => ReviewInfoEntity) - @JoinColumn({ name: "review_id" }) - reviewId: ReviewInfoEntity; - @CreateDateColumn({ name: "created_at", type: "timestamp" }) createdAt: Date; @Column({ name: "deleted_at", type: "timestamp", nullable: true }) deletedAt: Date | null; + + @ManyToOne(() => User) + @JoinColumn({ name: "user_id" }) + user: User; + + @ManyToOne(() => RestaurantInfoEntity) + @JoinColumn({ name: "restaurant_id" }) + restaurant: RestaurantInfoEntity; + + @ManyToOne(() => ReviewInfoEntity) + @JoinColumn({ name: "review_id" }) + review: ReviewInfoEntity; } + +