import { IsString, IsOptional, IsNotEmpty, IsInt, IsDate } from 'class-validator';
import { Type } from 'class-transformer';

export class CreateVehicleDto {
  @IsString()
  @IsNotEmpty()
  vehicleNumber: string;

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

  @IsOptional()
  @IsInt()
  @Type(() => Number)
  manufacturingYear?: number;

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

  @IsOptional()
  @IsInt()
  @Type(() => Number)
  tankManufacturingYear?: number;

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

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

  @IsDate()
  @Type(() => Date)
  @IsOptional()
  fitnessDueDate?: Date;

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

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

  @IsDate()
  @Type(() => Date)
  @IsOptional()
  rule18Validity?: Date;

  @IsDate()
  @Type(() => Date)
  @IsOptional()
  rule19Validity?: Date;

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

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

  @IsString()
  @IsOptional()
  warehouseId?: string;
}
