diff --git a/backend/libs/database/image.entity.ts b/backend/libs/database/image.entity.ts new file mode 100644 index 0000000..b412419 --- /dev/null +++ b/backend/libs/database/image.entity.ts @@ -0,0 +1,24 @@ +import { Entity, PrimaryColumn, Column, OneToOne, JoinColumn } from 'typeorm'; +import { Post } from './post.entity'; + +@Entity() +export class Image { + constructor(props?: Partial) { + Object.assign(this, props); + } + + @PrimaryColumn() + message_id: number; + + @Column({ nullable: false }) + post_id: number; + + @Column({ nullable: false }) + file_id: string; + @Column({ default: false }) + has_spoiler: boolean; + + @OneToOne(() => Post) + @JoinColumn({ name: 'post_id' }) + user: Post; +} diff --git a/backend/libs/database/post.entity.ts b/backend/libs/database/post.entity.ts new file mode 100644 index 0000000..f58ce0b --- /dev/null +++ b/backend/libs/database/post.entity.ts @@ -0,0 +1,27 @@ +import { Entity, PrimaryGeneratedColumn, Column, Timestamp, OneToOne, JoinColumn } from 'typeorm'; +import { Admin } from './admin.entity'; +@Entity() +export class Post { + constructor(props?: Partial) { + Object.assign(this, props); + } + + @PrimaryGeneratedColumn('uuid') + uuid: string; + + @Column({ default: false }) + posted: boolean; + + @Column({ nullable: false }) + from_user_id: string; + @Column() + text: string; + @Column() + media_group_id: string; + @Column({ type: 'timestamptz' }) + timestamps: Date; + + @OneToOne(() => Admin) + @JoinColumn({ name: 'from_user_id' }) + user: Admin; +} diff --git a/backend/libs/libs.module.ts b/backend/libs/libs.module.ts index db10c9c..ef53738 100644 --- a/backend/libs/libs.module.ts +++ b/backend/libs/libs.module.ts @@ -2,8 +2,10 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { User } from './database/user.entity'; import { Admin } from './database/admin.entity'; +import { Post } from './database/post.entity'; +import { Image } from './database/image.entity'; @Module({ - imports: [TypeOrmModule.forFeature([User, Admin])], + imports: [TypeOrmModule.forFeature([User, Admin, Post, Image])], exports: [TypeOrmModule], }) export class LibsModule {}