import { IsNotEmpty, IsOptional, IsString, IsBoolean, IsUUID, IsEnum, IsNumber, MaxLength, Min, IsDateString } from 'class-validator';
import { VehicleStatus } from '../../../entities/vehicle.entity';

export class CreateVehicleDto {
  @IsUUID() @IsOptional()
  destination_id?: string;

  @IsUUID() @IsOptional()
  supplier_id?: string;

  @IsUUID() @IsOptional()
  assigned_driver_id?: string;

  @IsString() @IsOptional() @MaxLength(50)
  vehicle_no?: string;

  @IsString() @IsOptional() @MaxLength(100)
  type?: string;

  @IsString() @IsOptional() @MaxLength(255)
  company?: string;

  @IsString() @IsOptional() @MaxLength(255)
  model?: string;

  @IsNumber() @IsOptional() @Min(1900)
  year?: number;

  @IsNumber() @IsOptional() @Min(1)
  capacity?: number;

  @IsNumber() @IsOptional() @Min(1)
  capping?: number;

  @IsString() @IsOptional() @MaxLength(50)
  fuel_type?: string;

  @IsString() @IsOptional() @MaxLength(50)
  color?: string;

  @IsDateString() @IsOptional()
  insurance_expiry?: string;

  @IsString() @IsOptional()
  features?: string;

  @IsEnum(VehicleStatus) @IsOptional()
  status?: VehicleStatus;

  @IsString() @IsOptional()
  notes?: string;

  @IsBoolean() @IsOptional()
  is_active?: boolean;
}
