From 4e9e834df497526b5a81f5e8d0e346114ab2f476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus-Peter=20H=C3=BCbner?= Date: Fri, 15 Jul 2022 16:37:32 +0200 Subject: [PATCH] adapt users table --- .../User.ts | 109 ++++++++++++++++++ database/entity/User.ts | 2 +- database/entity/index.ts | 2 + .../0044-adapt_users_table_for_gradidoid.ts | 2 +- 4 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 database/entity/0044-adapt_users_table_for_gradidoid/User.ts diff --git a/database/entity/0044-adapt_users_table_for_gradidoid/User.ts b/database/entity/0044-adapt_users_table_for_gradidoid/User.ts new file mode 100644 index 000000000..658638b5e --- /dev/null +++ b/database/entity/0044-adapt_users_table_for_gradidoid/User.ts @@ -0,0 +1,109 @@ +import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, DeleteDateColumn } from 'typeorm' + +@Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) +export class User extends BaseEntity { + @PrimaryGeneratedColumn('increment', { unsigned: true }) + id: number + + @Column({ + name: 'gradido_id', + length: 36, + nullable: true, + default: null, + collation: 'utf8mb4_unicode_ci', + }) + gradidoID: string + + @Column({ + name: 'alias', + length: 20, + nullable: true, + default: null, + collation: 'utf8mb4_unicode_ci', + }) + alias: string + + @Column({ name: 'public_key', type: 'binary', length: 32, default: null, nullable: true }) + pubKey: Buffer + + @Column({ name: 'privkey', type: 'binary', length: 80, default: null, nullable: true }) + privKey: Buffer + + @Column({ + name: 'passphrase_encrypt_type', + length: 36, + nullable: true, + default: null, + collation: 'utf8mb4_unicode_ci', + }) + passphraseEncryptType: string + + @Column({ length: 255, unique: true, nullable: false, collation: 'utf8mb4_unicode_ci' }) + email: string + + @Column({ name: 'email_id', type: 'int', unsigned: true, nullable: true, default: null }) + emailId?: number | null + + @Column({ + name: 'first_name', + length: 255, + nullable: true, + default: null, + collation: 'utf8mb4_unicode_ci', + }) + firstName: string + + @Column({ + name: 'last_name', + length: 255, + nullable: true, + default: null, + collation: 'utf8mb4_unicode_ci', + }) + lastName: string + + @DeleteDateColumn() + deletedAt: Date | null + + @Column({ type: 'bigint', default: 0, unsigned: true }) + password: BigInt + + @Column({ name: 'email_hash', type: 'binary', length: 32, default: null, nullable: true }) + emailHash: Buffer + + @Column({ name: 'created', default: () => 'CURRENT_TIMESTAMP', nullable: false }) + createdAt: Date + + @Column({ name: 'email_checked', type: 'bool', nullable: false, default: false }) + emailChecked: boolean + + @Column({ length: 4, default: 'de', collation: 'utf8mb4_unicode_ci', nullable: false }) + language: string + + @Column({ name: 'is_admin', type: 'datetime', nullable: true, default: null }) + isAdmin: Date | null + + @Column({ name: 'referrer_id', type: 'int', unsigned: true, nullable: true, default: null }) + referrerId?: number | null + + @Column({ + name: 'contribution_link_id', + type: 'int', + unsigned: true, + nullable: true, + default: null, + }) + contributionLinkId?: number | null + + @Column({ name: 'publisher_id', default: 0 }) + publisherId: number + + @Column({ + type: 'text', + name: 'passphrase', + collation: 'utf8mb4_unicode_ci', + nullable: true, + default: null, + }) + passphrase: string +} diff --git a/database/entity/User.ts b/database/entity/User.ts index 99b8c8ca9..a29e87cd7 100644 --- a/database/entity/User.ts +++ b/database/entity/User.ts @@ -1 +1 @@ -export { User } from './0040-add_contribution_link_id_to_user/User' +export { User } from './0044-adapt_users_table_for_gradidoid/User' diff --git a/database/entity/index.ts b/database/entity/index.ts index 266c40740..76acba3fa 100644 --- a/database/entity/index.ts +++ b/database/entity/index.ts @@ -5,6 +5,7 @@ import { Migration } from './Migration' import { Transaction } from './Transaction' import { TransactionLink } from './TransactionLink' import { User } from './User' +import { UserContact } from './UserContact' import { Contribution } from './Contribution' export const entities = [ @@ -16,4 +17,5 @@ export const entities = [ Transaction, TransactionLink, User, + UserContact, ] diff --git a/database/migrations/0044-adapt_users_table_for_gradidoid.ts b/database/migrations/0044-adapt_users_table_for_gradidoid.ts index 29fae353e..eb5f8e2cf 100644 --- a/database/migrations/0044-adapt_users_table_for_gradidoid.ts +++ b/database/migrations/0044-adapt_users_table_for_gradidoid.ts @@ -1,6 +1,6 @@ /* MIGRATION TO ADD GRADIDO_ID * - * This migration adds new columns to the table `users` and creates the + * This migration adds new columns to the table `users` and creates the * new table `user_contacts` */