diff --git a/src/database/migrations/1709769642152-CreateUser.ts b/src/database/migrations/1715028537217-CreateUser.ts similarity index 94% rename from src/database/migrations/1709769642152-CreateUser.ts rename to src/database/migrations/1715028537217-CreateUser.ts index fa9c01382..4cf6a264a 100644 --- a/src/database/migrations/1709769642152-CreateUser.ts +++ b/src/database/migrations/1715028537217-CreateUser.ts @@ -1,20 +1,20 @@ import { MigrationInterface, QueryRunner } from 'typeorm'; -export class CreateUser1709769642152 implements MigrationInterface { - name = 'CreateUser1709769642152'; +export class CreateUser1715028537217 implements MigrationInterface { + name = 'CreateUser1715028537217'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query( - `CREATE TABLE "status" ("id" integer NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_e12743a7086ec826733f54e1d95" PRIMARY KEY ("id"))`, + `CREATE TABLE "role" ("id" integer NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_b36bcfe02fc8de3c57a8b2391c2" PRIMARY KEY ("id"))`, ); await queryRunner.query( - `CREATE TABLE "role" ("id" integer NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_b36bcfe02fc8de3c57a8b2391c2" PRIMARY KEY ("id"))`, + `CREATE TABLE "status" ("id" integer NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_e12743a7086ec826733f54e1d95" PRIMARY KEY ("id"))`, ); await queryRunner.query( `CREATE TABLE "file" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "path" character varying NOT NULL, CONSTRAINT "PK_36b46d232307066b3a2c9ea3a1d" PRIMARY KEY ("id"))`, ); await queryRunner.query( - `CREATE TABLE "user" ("id" SERIAL NOT NULL, "email" character varying, "password" character varying, "provider" character varying NOT NULL DEFAULT 'email', "socialId" character varying, "firstName" character varying, "lastName" character varying, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP, "photoId" uuid, "roleId" integer, "statusId" integer, CONSTRAINT "UQ_e12875dfb3b1d92d7d7c5377e22" UNIQUE ("email"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`, + `CREATE TABLE "user" ("id" SERIAL NOT NULL, "email" character varying, "password" character varying, "provider" character varying NOT NULL DEFAULT 'email', "socialId" character varying, "firstName" character varying, "lastName" character varying, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP, "photoId" uuid, "roleId" integer, "statusId" integer, CONSTRAINT "UQ_e12875dfb3b1d92d7d7c5377e22" UNIQUE ("email"), CONSTRAINT "REL_75e2be4ce11d447ef43be0e374" UNIQUE ("photoId"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`, ); await queryRunner.query( `CREATE INDEX "IDX_9bd2fe7a8e694dedc4ec2f666f" ON "user" ("socialId") `, @@ -73,7 +73,7 @@ export class CreateUser1709769642152 implements MigrationInterface { ); await queryRunner.query(`DROP TABLE "user"`); await queryRunner.query(`DROP TABLE "file"`); - await queryRunner.query(`DROP TABLE "role"`); await queryRunner.query(`DROP TABLE "status"`); + await queryRunner.query(`DROP TABLE "role"`); } } diff --git a/src/users/infrastructure/persistence/relational/entities/user.entity.ts b/src/users/infrastructure/persistence/relational/entities/user.entity.ts index f701867d0..f20c47efb 100644 --- a/src/users/infrastructure/persistence/relational/entities/user.entity.ts +++ b/src/users/infrastructure/persistence/relational/entities/user.entity.ts @@ -8,6 +8,8 @@ import { ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, + JoinColumn, + OneToOne, } from 'typeorm'; import { RoleEntity } from '../../../../../roles/infrastructure/persistence/relational/entities/role.entity'; import { StatusEntity } from '../../../../../statuses/infrastructure/persistence/relational/entities/status.entity'; @@ -90,9 +92,10 @@ export class UserEntity extends EntityRelationalHelper { @ApiResponseProperty({ type: () => FileEntity, }) - @ManyToOne(() => FileEntity, { + @OneToOne(() => FileEntity, { eager: true, }) + @JoinColumn() photo?: FileEntity | null; @ApiResponseProperty({