import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger"; import { IsBoolean, IsInt, IsNotEmpty, IsOptional, IsString, IsUUID, IsUrl, Length } from "class-validator"; import { CategoryMessage } from "../../../common/enums/message.enum"; export class CreateDanakServiceCategoryDto { @IsNotEmpty({ message: CategoryMessage.TITLE_REQUIRED }) @IsString({ message: CategoryMessage.TITLE_STRING }) @Length(3, 50, { message: CategoryMessage.TITLE_LENGTH }) @ApiProperty({ description: "Category title", example: "business" }) title: string; @IsNotEmpty({ message: CategoryMessage.ICON_REQUIRED }) @IsUrl({ protocols: ["http", "https"], require_protocol: true }, { message: CategoryMessage.ICON_SHOULD_BE_URL }) @ApiProperty({ description: "Category icon", example: "https://example.com/icon.png" }) icon: string; @IsNotEmpty({ message: CategoryMessage.IS_ACTIVE_REQUIRED }) @IsBoolean({ message: CategoryMessage.IS_ACTIVE_REQUIRED }) @ApiProperty({ description: "Category status", example: true }) isActive: boolean; @IsOptional() @IsNotEmpty({ message: CategoryMessage.PARENT_ID_REQUIRED }) @IsUUID("4", { message: CategoryMessage.PARENT_ID_SHOULD_BE_UUID }) @ApiPropertyOptional({ description: "Parent category id", example: "8b1e8b1e-8b1e-8b1e-8b1e-8b1e8b1e8b1e" }) parentId?: string; @IsNotEmpty({ message: CategoryMessage.ORDER_REQUIRED }) @IsInt({ message: CategoryMessage.ORDER_SHOULD_BE_INT }) @ApiProperty({ description: "Category order", example: 1 }) order: number; }