diff --git a/backend/src/libs/packages/database/generated-schema/0017_create_file_verification_status_table.sql b/backend/src/libs/packages/database/generated-schema/0017_create_file_verification_status_table.sql index c53f57ffe..1de50c25b 100644 --- a/backend/src/libs/packages/database/generated-schema/0017_create_file_verification_status_table.sql +++ b/backend/src/libs/packages/database/generated-schema/0017_create_file_verification_status_table.sql @@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS --> statement-breakpoint ALTER TABLE "driver_details" -ADD COLUMN "driver_license_file_id" integer NOT NULL; +ADD COLUMN "driver_license_file_id" integer; --> statement-breakpoint DO $$ BEGIN diff --git a/backend/src/libs/packages/database/generated-schema/meta/0017_snapshot.json b/backend/src/libs/packages/database/generated-schema/meta/0017_snapshot.json index 40e0d5b7a..1acda6c5b 100644 --- a/backend/src/libs/packages/database/generated-schema/meta/0017_snapshot.json +++ b/backend/src/libs/packages/database/generated-schema/meta/0017_snapshot.json @@ -87,8 +87,7 @@ "driver_license_file_id": { "name": "driver_license_file_id", "type": "integer", - "primaryKey": false, - "notNull": true + "primaryKey": false }, "user_id": { "name": "user_id", diff --git a/backend/src/libs/packages/database/schema/tables-schema.ts b/backend/src/libs/packages/database/schema/tables-schema.ts index c8d370ded..cbb2f510d 100644 --- a/backend/src/libs/packages/database/schema/tables-schema.ts +++ b/backend/src/libs/packages/database/schema/tables-schema.ts @@ -147,9 +147,9 @@ const files = pgTable('files', { const drivers = pgTable('driver_details', { id: serial('id').primaryKey(), driverLicenseNumber: varchar('driver_license_number').unique().notNull(), - driverLicenseFileId: integer('driver_license_file_id') - .references(() => files.id) - .notNull(), + driverLicenseFileId: integer('driver_license_file_id').references( + () => files.id, + ), userId: integer('user_id') .notNull() .references(() => users.id), diff --git a/backend/src/packages/business/business.service.ts b/backend/src/packages/business/business.service.ts index c78433e29..86369b4d9 100644 --- a/backend/src/packages/business/business.service.ts +++ b/backend/src/packages/business/business.service.ts @@ -270,9 +270,11 @@ class BusinessService implements IService { }); } - await this.fileVerificationStatusService.deleteByFileId( - driverToUpdate.driverLicenseFileId, - ); + if (driverToUpdate.driverLicenseFileId) { + await this.fileVerificationStatusService.deleteByFileId( + driverToUpdate.driverLicenseFileId, + ); + } const newLicenseFile = await this.fileService.create(payload.files[0]); @@ -290,7 +292,9 @@ class BusinessService implements IService { name: FileVerificationName.DRIVER_LICENSE_SCAN, }); - await this.fileService.delete(driverToUpdate.driverLicenseFileId); + if (driverToUpdate.driverLicenseFileId) { + await this.fileService.delete(driverToUpdate.driverLicenseFileId); + } return { ...updatedDriver, @@ -347,10 +351,12 @@ class BusinessService implements IService { const result = await this.driverService.delete(driverId); - await this.fileVerificationStatusService.deleteByFileId( - driverToDelete.driverLicenseFileId, - ); - await this.fileService.delete(driverToDelete.driverLicenseFileId); + if (driverToDelete.driverLicenseFileId) { + await this.fileVerificationStatusService.deleteByFileId( + driverToDelete.driverLicenseFileId, + ); + await this.fileService.delete(driverToDelete.driverLicenseFileId); + } return result; } diff --git a/backend/src/packages/drivers/driver.repository.ts b/backend/src/packages/drivers/driver.repository.ts index 1926dca3c..acb595665 100644 --- a/backend/src/packages/drivers/driver.repository.ts +++ b/backend/src/packages/drivers/driver.repository.ts @@ -56,7 +56,7 @@ class DriverRepository implements IRepository { ...SELECT_FILTER_JOIN_USER, }) .from(this.driverSchema) - .innerJoin( + .leftJoin( schema.fileVerificationStatus, eq( this.driverSchema.driverLicenseFileId, @@ -91,7 +91,7 @@ class DriverRepository implements IRepository { ...SELECT_FILTER_JOIN_USER, }) .from(this.driverSchema) - .innerJoin( + .leftJoin( schema.fileVerificationStatus, eq( this.driverSchema.driverLicenseFileId, diff --git a/shared/src/packages/drivers/libs/types/driver-entity.type.ts b/shared/src/packages/drivers/libs/types/driver-entity.type.ts index 2698c4bf3..e0455d580 100644 --- a/shared/src/packages/drivers/libs/types/driver-entity.type.ts +++ b/shared/src/packages/drivers/libs/types/driver-entity.type.ts @@ -10,7 +10,7 @@ type DriverEntityT = { businessId: BusinessEntityT['id']; createdAt: string; avatarId: FileEntityT['id'] | null; - driverLicenseFileId: FileEntityT['id']; + driverLicenseFileId: FileEntityT['id'] | null; verificationStatus: Omit | null; };