import { IsString, IsOptional, IsObject, IsIn } from "class-validator";

/**
 * DTO for updating user preferences
 */
export class UpdatePreferencesDto {
  @IsOptional()
  @IsString({ message: "theme must be a string" })
  @IsIn(["light", "dark", "system"], {
    message: "theme must be one of: light, dark, system",
  })
  theme?: string;

  @IsOptional()
  @IsString({ message: "locale must be a string" })
  locale?: string;

  @IsOptional()
  @IsString({ message: "timezone must be a string" })
  timezone?: string;

  @IsOptional()
  @IsObject({ message: "settings must be an object" })
  settings?: Record<string, unknown>;
}
