From 5ca107f7818279a0fabe4a1c7c2426910ac3bc92 Mon Sep 17 00:00:00 2001 From: natib21 Date: Fri, 19 Jun 2026 12:17:18 +0000 Subject: [PATCH] vehicle --- .../1775000000000-CreateDriversTable.ts | 13 +++++----- .../modules/drivers/entities/driver.entity.ts | 24 ++++++++----------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/apps/edr-freight-api/src/migrations/1775000000000-CreateDriversTable.ts b/apps/edr-freight-api/src/migrations/1775000000000-CreateDriversTable.ts index 4e671febc..8f41587cf 100644 --- a/apps/edr-freight-api/src/migrations/1775000000000-CreateDriversTable.ts +++ b/apps/edr-freight-api/src/migrations/1775000000000-CreateDriversTable.ts @@ -5,8 +5,8 @@ export class CreateDriversTable1775000000000 implements MigrationInterface { await queryRunner.query(` DO $$ BEGIN - DROP TABLE IF EXISTS freight.drivers CASCADE; - CREATE TABLE freight.drivers ( + IF NOT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'drivers' AND table_schema = 'freight') THEN + CREATE TABLE freight.drivers ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), license_number VARCHAR NOT NULL UNIQUE, first_name VARCHAR NOT NULL, @@ -27,10 +27,11 @@ export class CreateDriversTable1775000000000 implements MigrationInterface { deleted_at TIMESTAMP NULL ); - CREATE INDEX idx_drivers_license_number ON freight.drivers(license_number); - CREATE INDEX idx_drivers_email ON freight.drivers(email); - CREATE INDEX idx_drivers_phone_number ON freight.drivers(phone_number); - CREATE INDEX idx_drivers_status ON freight.drivers(status); + CREATE INDEX idx_drivers_license_number ON freight.drivers(license_number); + CREATE INDEX idx_drivers_email ON freight.drivers(email); + CREATE INDEX idx_drivers_phone_number ON freight.drivers(phone_number); + CREATE INDEX idx_drivers_status ON freight.drivers(status); + END IF; END $$; `); } diff --git a/apps/edr-freight-api/src/modules/drivers/entities/driver.entity.ts b/apps/edr-freight-api/src/modules/drivers/entities/driver.entity.ts index 9f7a37b7c..c0b309883 100644 --- a/apps/edr-freight-api/src/modules/drivers/entities/driver.entity.ts +++ b/apps/edr-freight-api/src/modules/drivers/entities/driver.entity.ts @@ -1,4 +1,4 @@ -import { Entity, Column, Index } from 'typeorm'; +import { Entity, Column } from 'typeorm'; import { BaseEntity } from '@edr/api-common'; export enum DriverStatus { @@ -9,48 +9,44 @@ export enum DriverStatus { } @Entity({ name: 'drivers', schema: 'freight' }) -@Index(['licenseNumber']) -@Index(['email']) -@Index(['phoneNumber']) -@Index(['status']) export class Driver extends BaseEntity { - @Column({ unique: true }) + @Column({ name: 'license_number', unique: true }) licenseNumber!: string; - @Column() + @Column({ name: 'first_name' }) firstName!: string; - @Column() + @Column({ name: 'last_name' }) lastName!: string; @Column({ unique: true }) email!: string; - @Column({ unique: true }) + @Column({ name: 'phone_number', unique: true }) phoneNumber!: string; - @Column({ type: 'date' }) + @Column({ name: 'date_of_birth', type: 'date' }) dateOfBirth!: Date; - @Column({ type: 'date' }) + @Column({ name: 'license_expiry_date', type: 'date' }) licenseExpiryDate!: Date; @Column({ type: 'varchar', default: DriverStatus.ACTIVE }) status!: DriverStatus; - @Column({ type: 'varchar', array: true, nullable: true }) + @Column({ name: 'vehicle_types_authorized', type: 'varchar', array: true, nullable: true }) vehicleTypesAuthorized?: string[]; @Column({ type: 'text', nullable: true }) address!: string | null; - @Column({ type: 'varchar', nullable: true }) + @Column({ name: 'emergency_contact', type: 'varchar', nullable: true }) emergencyContact!: string | null; @Column({ type: 'text', nullable: true }) notes!: string | null; - @Column({ type: 'int', default: 0 }) + @Column({ name: 'total_trips', type: 'int', default: 0 }) totalTrips!: number; @Column({ type: 'numeric', precision: 3, scale: 2, nullable: true })