import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsOptional, IsString, IsUUID, Length } from 'class-validator';

export class CreateCategoriaDto {
  @ApiProperty({ example: 'Bebidas' })
  @IsNotEmpty({ message: 'Descripción es obligatoria' })
  @IsString()
  @Length(1, 255, { message: 'Descripción debe tener entre 1 y 255 caracteres' })
  descripcion: string;

  @ApiProperty({ required: false, example: 'cd88ac6a-2b0e-41bc-afd9-24b594cb8daf' })
  @IsOptional()
  @IsUUID('all', { message: 'padre_id debe ser un UUID válido' })
  padre_id?: string;

  @ApiProperty({ required: false, example: '' })
  @IsOptional()
  icono?: string;

  @ApiProperty({
    required: false,
    description:
      'Rubro (unidad de negocio) de la categoría. Los productos lo heredan. null = categoría compartida entre todos los rubros.',
  })
  @IsOptional()
  @IsUUID('all', { message: 'rubro_id debe ser un UUID válido' })
  rubro_id?: string | null;

  @ApiProperty({ required: false, example: '#4ade80', description: 'Color hexadecimal para la categoría' })
  @IsOptional()
  @IsString()
  @Length(4, 20, { message: 'Color debe tener entre 4 y 20 caracteres' })
  color?: string;
}
