Files
dzone-api/src/modules/companies/DTO/company-list-query.dto.ts
T
2025-05-12 09:37:44 +03:30

41 lines
1.5 KiB
TypeScript

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;
}