From 35d771bff0fe16ef946314d39f47d6e8c8d3e3d2 Mon Sep 17 00:00:00 2001 From: Errormacr Date: Fri, 24 Nov 2023 11:06:55 +0300 Subject: [PATCH 1/5] start create entity for proxy --- backend/libs/database/proxy_user.entity.ts | 31 +++++++++++++++++++ .../libs/database/proxy_user_table.entity.ts | 31 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 backend/libs/database/proxy_user.entity.ts create mode 100644 backend/libs/database/proxy_user_table.entity.ts diff --git a/backend/libs/database/proxy_user.entity.ts b/backend/libs/database/proxy_user.entity.ts new file mode 100644 index 0000000..d89415a --- /dev/null +++ b/backend/libs/database/proxy_user.entity.ts @@ -0,0 +1,31 @@ +import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; +import { User } from './user.entity'; + +@Entity() +export class ProxyUser { + constructor(props?: Partial) { + Object.assign(this, props); + } + + @PrimaryGeneratedColumn('uuid') + public uuid!: string; + + @Column({ nullable: true }) + public userName: string; + + @Column({ nullable: true }) + public description: string; + + @Column({ nullable: false }) + public link!: string; + + @Column({ nullable: false, type: 'timestamptz' }) + public connectDate!: Date; + + @Column({ nullable: true }) + public user_id!: string; + + @OneToOne(() => User, (user) => user.id, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: true }) + @JoinColumn({ name: 'user_id' }) + public user: User; +} diff --git a/backend/libs/database/proxy_user_table.entity.ts b/backend/libs/database/proxy_user_table.entity.ts new file mode 100644 index 0000000..afb6d52 --- /dev/null +++ b/backend/libs/database/proxy_user_table.entity.ts @@ -0,0 +1,31 @@ +import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; +import { User } from './user.entity'; + +@Entity() +export class Admin { + constructor(props?: Partial) { + Object.assign(this, props); + } + + @PrimaryGeneratedColumn('uuid') + public uuid!: string; + + @Column({ nullable: true }) + public userName: string; + + @Column({ nullable: true }) + public description: string; + + @Column({ nullable: false }) + public link!: string; + + @Column({ nullable: false, type: 'timestamptz' }) + public connectDate!: Date; + + @Column({ nullable: true }) + public user_id!: string; + + @OneToOne(() => User, (user) => user.id, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: true }) + @JoinColumn({ name: 'user_id' }) + public user: User; +} From f42741a481effdd4cf534953c35772034934af80 Mon Sep 17 00:00:00 2001 From: Errormacr Date: Fri, 24 Nov 2023 17:14:11 +0300 Subject: [PATCH 2/5] This commit adds the `Payment` and `ProxyUser` entities to the database. --- backend/libs/database/ProxyUser.entity.ts | 31 +++++++++++++++++++++++ backend/libs/database/payment.entity.ts | 22 ++++++++++++++++ backend/libs/database/post.entity.ts | 2 +- backend/libs/libs.module.ts | 4 ++- 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 backend/libs/database/ProxyUser.entity.ts create mode 100644 backend/libs/database/payment.entity.ts diff --git a/backend/libs/database/ProxyUser.entity.ts b/backend/libs/database/ProxyUser.entity.ts new file mode 100644 index 0000000..27a2d34 --- /dev/null +++ b/backend/libs/database/ProxyUser.entity.ts @@ -0,0 +1,31 @@ +import { Entity, OneToOne, JoinColumn, PrimaryGeneratedColumn, Column } from 'typeorm'; +import { User } from './user.entity'; + +@Entity() +export class ProxyUser { + constructor(props?: Partial) { + Object.assign(this, props); + } + + @PrimaryGeneratedColumn('uuid') + public id!: string; + + @Column({ nullable: true }) + public userName: string; + + @Column({ nullable: true }) + public description: string; + + @Column({ nullable: false }) + public link!: string; + + @Column({ nullable: false, type: 'timestamptz' }) + public connectDate!: Date; + + @Column({ nullable: true }) + user_id: string; + + @OneToOne(() => User) + @JoinColumn({ name: 'user_id' }) + user: User; +} diff --git a/backend/libs/database/payment.entity.ts b/backend/libs/database/payment.entity.ts new file mode 100644 index 0000000..3e77782 --- /dev/null +++ b/backend/libs/database/payment.entity.ts @@ -0,0 +1,22 @@ +import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm'; +import { ProxyUser } from './ProxyUser.entity'; + +@Entity() +export class Payment { + @PrimaryGeneratedColumn('uuid') + public id!: string; + + @Column() + public uuidUser!: string; + + @Column({ type: 'timestamptz' }) + public payTime!: Date; + + @ManyToOne(() => ProxyUser, { onDelete: 'CASCADE' }) // Assuming you want to cascade delete when a user is deleted + @JoinColumn({ name: 'uuidUser' }) + user: ProxyUser; + + constructor(props?: Partial) { + Object.assign(this, props); + } +} diff --git a/backend/libs/database/post.entity.ts b/backend/libs/database/post.entity.ts index f58ce0b..4ff2e89 100644 --- a/backend/libs/database/post.entity.ts +++ b/backend/libs/database/post.entity.ts @@ -1,4 +1,4 @@ -import { Entity, PrimaryGeneratedColumn, Column, Timestamp, OneToOne, JoinColumn } from 'typeorm'; +import { Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm'; import { Admin } from './admin.entity'; @Entity() export class Post { diff --git a/backend/libs/libs.module.ts b/backend/libs/libs.module.ts index ef53738..57dc7e7 100644 --- a/backend/libs/libs.module.ts +++ b/backend/libs/libs.module.ts @@ -4,8 +4,10 @@ import { User } from './database/user.entity'; import { Admin } from './database/admin.entity'; import { Post } from './database/post.entity'; import { Image } from './database/image.entity'; +import { Payment } from './database/payment.entity'; +import { ProxyUser } from './database/ProxyUser.entity'; @Module({ - imports: [TypeOrmModule.forFeature([User, Admin, Post, Image])], + imports: [TypeOrmModule.forFeature([User, Admin, Post, Image, Payment, ProxyUser])], exports: [TypeOrmModule], }) export class LibsModule {} From e70880dcc5d95f892d50b4490b73dc4b8afd3390 Mon Sep 17 00:00:00 2001 From: Errormacr Date: Fri, 24 Nov 2023 17:15:52 +0300 Subject: [PATCH 3/5] idk what --- backend/libs/database/ProxyUser.entity.ts | 31 ------------------- backend/libs/database/payment.entity.ts | 2 +- .../libs/database/proxy_user_table.entity.ts | 31 ------------------- backend/libs/libs.module.ts | 2 +- 4 files changed, 2 insertions(+), 64 deletions(-) delete mode 100644 backend/libs/database/ProxyUser.entity.ts delete mode 100644 backend/libs/database/proxy_user_table.entity.ts diff --git a/backend/libs/database/ProxyUser.entity.ts b/backend/libs/database/ProxyUser.entity.ts deleted file mode 100644 index 27a2d34..0000000 --- a/backend/libs/database/ProxyUser.entity.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Entity, OneToOne, JoinColumn, PrimaryGeneratedColumn, Column } from 'typeorm'; -import { User } from './user.entity'; - -@Entity() -export class ProxyUser { - constructor(props?: Partial) { - Object.assign(this, props); - } - - @PrimaryGeneratedColumn('uuid') - public id!: string; - - @Column({ nullable: true }) - public userName: string; - - @Column({ nullable: true }) - public description: string; - - @Column({ nullable: false }) - public link!: string; - - @Column({ nullable: false, type: 'timestamptz' }) - public connectDate!: Date; - - @Column({ nullable: true }) - user_id: string; - - @OneToOne(() => User) - @JoinColumn({ name: 'user_id' }) - user: User; -} diff --git a/backend/libs/database/payment.entity.ts b/backend/libs/database/payment.entity.ts index 3e77782..3262fce 100644 --- a/backend/libs/database/payment.entity.ts +++ b/backend/libs/database/payment.entity.ts @@ -1,5 +1,5 @@ import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm'; -import { ProxyUser } from './ProxyUser.entity'; +import { ProxyUser } from './proxy_user.entity'; @Entity() export class Payment { diff --git a/backend/libs/database/proxy_user_table.entity.ts b/backend/libs/database/proxy_user_table.entity.ts deleted file mode 100644 index afb6d52..0000000 --- a/backend/libs/database/proxy_user_table.entity.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; -import { User } from './user.entity'; - -@Entity() -export class Admin { - constructor(props?: Partial) { - Object.assign(this, props); - } - - @PrimaryGeneratedColumn('uuid') - public uuid!: string; - - @Column({ nullable: true }) - public userName: string; - - @Column({ nullable: true }) - public description: string; - - @Column({ nullable: false }) - public link!: string; - - @Column({ nullable: false, type: 'timestamptz' }) - public connectDate!: Date; - - @Column({ nullable: true }) - public user_id!: string; - - @OneToOne(() => User, (user) => user.id, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: true }) - @JoinColumn({ name: 'user_id' }) - public user: User; -} diff --git a/backend/libs/libs.module.ts b/backend/libs/libs.module.ts index 57dc7e7..f369309 100644 --- a/backend/libs/libs.module.ts +++ b/backend/libs/libs.module.ts @@ -5,7 +5,7 @@ import { Admin } from './database/admin.entity'; import { Post } from './database/post.entity'; import { Image } from './database/image.entity'; import { Payment } from './database/payment.entity'; -import { ProxyUser } from './database/ProxyUser.entity'; +import { ProxyUser } from './database/proxy_user.entity'; @Module({ imports: [TypeOrmModule.forFeature([User, Admin, Post, Image, Payment, ProxyUser])], exports: [TypeOrmModule], From 04aefa8af730d173229957dba9a4b48153a515dc Mon Sep 17 00:00:00 2001 From: Errormacr Date: Fri, 24 Nov 2023 17:17:32 +0300 Subject: [PATCH 4/5] Changed the primary key of the Payment entity from a UUID to an incrementing integer. --- backend/libs/database/payment.entity.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/libs/database/payment.entity.ts b/backend/libs/database/payment.entity.ts index 3262fce..14e7844 100644 --- a/backend/libs/database/payment.entity.ts +++ b/backend/libs/database/payment.entity.ts @@ -3,8 +3,8 @@ import { ProxyUser } from './proxy_user.entity'; @Entity() export class Payment { - @PrimaryGeneratedColumn('uuid') - public id!: string; + @PrimaryGeneratedColumn('increment') + public id!: number; @Column() public uuidUser!: string; From 0b471ee5de6f5032e898f5290b745b2178df34fe Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Fri, 24 Nov 2023 17:53:25 +0300 Subject: [PATCH 5/5] Some changes in entities --- backend/libs/database/payment.entity.ts | 16 ++++++++-------- backend/libs/database/post.entity.ts | 5 ++++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/backend/libs/database/payment.entity.ts b/backend/libs/database/payment.entity.ts index 14e7844..71f68a0 100644 --- a/backend/libs/database/payment.entity.ts +++ b/backend/libs/database/payment.entity.ts @@ -1,22 +1,22 @@ -import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm'; +import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; import { ProxyUser } from './proxy_user.entity'; @Entity() export class Payment { + constructor(props?: Partial) { + Object.assign(this, props); + } + @PrimaryGeneratedColumn('increment') public id!: number; @Column() - public uuidUser!: string; + public user_uuid!: string; @Column({ type: 'timestamptz' }) public payTime!: Date; - @ManyToOne(() => ProxyUser, { onDelete: 'CASCADE' }) // Assuming you want to cascade delete when a user is deleted - @JoinColumn({ name: 'uuidUser' }) + @ManyToOne(() => ProxyUser, { onDelete: 'CASCADE' }) + @JoinColumn({ name: 'user_uuid' }) user: ProxyUser; - - constructor(props?: Partial) { - Object.assign(this, props); - } } diff --git a/backend/libs/database/post.entity.ts b/backend/libs/database/post.entity.ts index 4ff2e89..1bebb15 100644 --- a/backend/libs/database/post.entity.ts +++ b/backend/libs/database/post.entity.ts @@ -1,4 +1,4 @@ -import { Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm'; +import { Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Admin } from './admin.entity'; @Entity() export class Post { @@ -14,10 +14,13 @@ export class Post { @Column({ nullable: false }) from_user_id: string; + @Column() text: string; + @Column() media_group_id: string; + @Column({ type: 'timestamptz' }) timestamps: Date;