From 41fef28cf77efc3acd455c41e9c5538456f92b29 Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Mon, 20 Nov 2023 19:07:44 +0300 Subject: [PATCH] Some entities changes --- backend/libs/database/admin.entity.ts | 10 ++++----- backend/libs/database/image.entity.ts | 21 ++++++++++-------- backend/libs/database/post.entity.ts | 31 ++++++++++++++++----------- 3 files changed, 36 insertions(+), 26 deletions(-) diff --git a/backend/libs/database/admin.entity.ts b/backend/libs/database/admin.entity.ts index 022d660..8aa1a0b 100644 --- a/backend/libs/database/admin.entity.ts +++ b/backend/libs/database/admin.entity.ts @@ -1,4 +1,4 @@ -import { Entity, OneToOne, JoinColumn, PrimaryGeneratedColumn, Column } from 'typeorm'; +import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; import { User } from './user.entity'; @Entity() @@ -10,10 +10,10 @@ export class Admin { @PrimaryGeneratedColumn() public id!: number; - @Column() - user_id: string; + @Column({ nullable: false }) + public user_id!: string; - @OneToOne(() => User) + @OneToOne(() => User, (user) => user.id) @JoinColumn({ name: 'user_id' }) - user: User; + public user!: User; } diff --git a/backend/libs/database/image.entity.ts b/backend/libs/database/image.entity.ts index b412419..376e811 100644 --- a/backend/libs/database/image.entity.ts +++ b/backend/libs/database/image.entity.ts @@ -1,4 +1,5 @@ -import { Entity, PrimaryColumn, Column, OneToOne, JoinColumn } from 'typeorm'; +import { ApiProperty } from '@nestjs/swagger'; +import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from 'typeorm'; import { Post } from './post.entity'; @Entity() @@ -8,17 +9,19 @@ export class Image { } @PrimaryColumn() - message_id: number; + public message_id!: number; @Column({ nullable: false }) - post_id: number; + public file_id!: string; - @Column({ nullable: false }) - file_id: string; @Column({ default: false }) - has_spoiler: boolean; + public has_spoiler!: boolean; - @OneToOne(() => Post) - @JoinColumn({ name: 'post_id' }) - user: Post; + @Column({ nullable: false }) + public post_uuid!: string; + + @ApiProperty({}) + @ManyToOne(() => Post, (post) => post.uuid) + @JoinColumn({ name: 'post_uuid' }) + public post!: Post; } diff --git a/backend/libs/database/post.entity.ts b/backend/libs/database/post.entity.ts index f58ce0b..b38978f 100644 --- a/backend/libs/database/post.entity.ts +++ b/backend/libs/database/post.entity.ts @@ -1,5 +1,6 @@ -import { Entity, PrimaryGeneratedColumn, Column, Timestamp, OneToOne, JoinColumn } from 'typeorm'; +import { Column, Entity, JoinColumn, OneToMany, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Admin } from './admin.entity'; +import { Image } from './image.entity'; @Entity() export class Post { constructor(props?: Partial) { @@ -7,21 +8,27 @@ export class Post { } @PrimaryGeneratedColumn('uuid') - uuid: string; + public uuid!: string; @Column({ default: false }) - posted: boolean; + public posted!: boolean; + + @Column() + public text: string; + + @Column({ nullable: true }) + public media_group_id: string; + + @Column({ type: 'timestamptz' }) + public timestamp!: Date; @Column({ nullable: false }) - from_user_id: string; - @Column() - text: string; - @Column() - media_group_id: string; - @Column({ type: 'timestamptz' }) - timestamps: Date; + public from_user_id!: string; - @OneToOne(() => Admin) + @OneToOne(() => Admin, (admin) => admin.user.id) @JoinColumn({ name: 'from_user_id' }) - user: Admin; + public from_user!: Admin; + + @OneToMany(() => Image, (image) => image.post) + public images: Image[]; }