import { ApiPropertyOptional } from "@nestjs/swagger"; import { Type } from "class-transformer"; import { IsDateString, IsEnum, IsIn, IsOptional, IsString } from "class-validator"; import { PaginationDto } from "../../../common/DTO/pagination.dto"; import { CommonMessage, CompanyMessage } from "../../../common/enums/message.enum"; import { CompanyStatus } from "../enums/company-status.enum"; export class CompanyListQueryDto extends PaginationDto { @IsOptional() @IsString({ message: CompanyMessage.NAME_MUST_BE_STRING }) @ApiPropertyOptional({ description: "نام شرکت" }) name?: string; @IsOptional() @IsString({ message: CompanyMessage.INDUSTRY_ID_SHOULD_BE_UUID }) @ApiPropertyOptional({ description: "شناسه صنعت" }) industryId?: string; @IsOptional() @Type(() => Number) @IsIn([1, 0], { message: CommonMessage.IS_ACTIVE_SHOULD_BE_1_0 }) @ApiPropertyOptional({ description: "ads status", example: 1 }) isActive?: number; @IsOptional() @IsEnum(CompanyStatus) @ApiPropertyOptional({ description: "status", example: CompanyStatus.APPROVED, enum: CompanyStatus }) status?: CompanyStatus; @IsOptional() @IsString({ message: CommonMessage.SEARCH_QUERY_STRING }) @ApiPropertyOptional({ description: "Search query", example: "search query" }) q?: string; @IsOptional() @IsDateString(undefined, { message: CommonMessage.DATE_MUST_BE_DATE }) @ApiPropertyOptional({ description: "تاریخ ثبت", example: "2021-01-01" }) registrationDate?: string; }