41 lines
1.5 KiB
TypeScript
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;
|
|
}
|