import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
import {
  IsEnum,
  IsInt,
  IsNotEmpty,
  IsOptional,
  IsString,
  MaxLength,
  Min,
} from "class-validator";
import { CatalogoVehicularTipo } from "../entities/catalogo-vehicular.entity";

export class CreateCatalogoVehicularDto {
  @ApiProperty({ enum: CatalogoVehicularTipo })
  @IsEnum(CatalogoVehicularTipo)
  tipo: CatalogoVehicularTipo;

  @ApiProperty()
  @IsString()
  @IsNotEmpty()
  @MaxLength(120)
  nombre: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  @MaxLength(120)
  marca?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  @MaxLength(120)
  modelo?: string;

  @ApiPropertyOptional()
  @IsOptional()
  @IsString()
  @MaxLength(120)
  motor?: string;

  @ApiPropertyOptional({
    description: "Tipo de vehiculo asociado al catalogo vehicular",
  })
  @IsOptional()
  @IsInt()
  @Min(1)
  tipoVehiculoId?: number;
}
