This commit is contained in:
natib21
2026-06-19 12:25:00 +00:00
parent 5ca107f781
commit 58bfb5045a
2 changed files with 41 additions and 46 deletions

View File

@@ -10,45 +10,45 @@ export enum DriverStatus {
@Entity({ name: 'drivers', schema: 'freight' })
export class Driver extends BaseEntity {
@Column({ name: 'license_number', unique: true })
licenseNumber!: string;
@Column({ name: 'license_number', unique: true, nullable: true })
licenseNumber?: string;
@Column({ name: 'first_name' })
firstName!: string;
@Column({ name: 'first_name', nullable: true })
firstName?: string;
@Column({ name: 'last_name' })
lastName!: string;
@Column({ name: 'last_name', nullable: true })
lastName?: string;
@Column({ unique: true })
email!: string;
@Column({ unique: true, nullable: true })
email?: string;
@Column({ name: 'phone_number', unique: true })
phoneNumber!: string;
@Column({ name: 'phone_number', unique: true, nullable: true })
phoneNumber?: string;
@Column({ name: 'date_of_birth', type: 'date' })
dateOfBirth!: Date;
@Column({ name: 'date_of_birth', type: 'date', nullable: true })
dateOfBirth?: Date;
@Column({ name: 'license_expiry_date', type: 'date' })
licenseExpiryDate!: Date;
@Column({ name: 'license_expiry_date', type: 'date', nullable: true })
licenseExpiryDate?: Date;
@Column({ type: 'varchar', default: DriverStatus.ACTIVE })
status!: DriverStatus;
@Column({ type: 'varchar', default: DriverStatus.ACTIVE, nullable: true })
status?: DriverStatus;
@Column({ name: 'vehicle_types_authorized', type: 'varchar', array: true, nullable: true })
vehicleTypesAuthorized?: string[];
@Column({ type: 'text', nullable: true })
address!: string | null;
address?: string | null;
@Column({ name: 'emergency_contact', type: 'varchar', nullable: true })
emergencyContact!: string | null;
emergencyContact?: string | null;
@Column({ type: 'text', nullable: true })
notes!: string | null;
notes?: string | null;
@Column({ name: 'total_trips', type: 'int', default: 0 })
totalTrips!: number;
@Column({ name: 'total_trips', type: 'int', default: 0, nullable: true })
totalTrips?: number;
@Column({ type: 'numeric', precision: 3, scale: 2, nullable: true })
rating!: number | null;
rating?: number | null;
}

View File

@@ -26,39 +26,34 @@ export enum VehicleStatus {
}
@Entity({ name: 'vehicles', schema: 'freight' })
@Index(['plateNumber'])
@Index(['registrationNumber'])
@Index(['status'])
@Index(['vehicleType'])
@Index(['manufacturer'])
export class Vehicle extends BaseEntity {
@Column({ name: 'plate_number', unique: true })
plateNumber!: string;
@Column({ name: 'plate_number', unique: true, nullable: true })
plateNumber?: string;
@Column({ name: 'registration_number', unique: true })
registrationNumber!: string;
@Column({ name: 'registration_number', unique: true, nullable: true })
registrationNumber?: string;
@Column({ name: 'vehicle_type', type: 'varchar' })
vehicleType!: VehicleType;
@Column({ name: 'vehicle_type', type: 'varchar', nullable: true })
vehicleType?: VehicleType;
@Column()
manufacturer!: string;
@Column({ nullable: true })
manufacturer?: string;
@Column()
model!: string;
@Column({ nullable: true })
model?: string;
@Column()
year!: number;
@Column({ nullable: true })
year?: number;
@Column({ name: 'fuel_type', type: 'varchar' })
fuelType!: FuelType;
@Column({ name: 'fuel_type', type: 'varchar', nullable: true })
fuelType?: FuelType;
@Column()
capacity!: number;
@Column({ nullable: true })
capacity?: number;
@Column({ name: 'status', type: 'varchar', default: VehicleStatus.ACTIVE })
status!: VehicleStatus;
@Column({ name: 'status', type: 'varchar', default: VehicleStatus.ACTIVE, nullable: true })
status?: VehicleStatus;
@Column({ type: 'text', nullable: true })
description!: string | null;
description?: string | null;
}