import { ApiProperty } from '@nestjs/swagger'; import { Type } from 'class-transformer'; import { IsArray, IsDefined, IsInt, IsNumber, IsOptional, IsString, Length, Max, Min, ValidateNested, } from 'class-validator'; export class p_gltableDTO { @ApiProperty({ required: true }) @Max(999999999, { message: 'Property ItemNo must not exceed 999999999' }) @Min(0, { message: 'Property ItemNo must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property ItemNo must be a number' }) @IsDefined({ message: 'Property ItemNo is required' }) ItemNo: number; @ApiProperty({ required: true }) @Length(0, 1000, { message: 'Property ItemDescription must be between 1 and 1000 characters', }) @IsString({ message: 'Property ItemDescription should be string' }) @IsDefined({ message: 'Property ItemDescription is required' }) ItemDescription: string; @ApiProperty({ required: true }) @IsNumber({}, { message: 'Property ItemValue should be number' }) @IsDefined({ message: 'Property ItemValue is required' }) ItemValue: number; @ApiProperty({ required: true }) @Max(99999999999, { message: 'Property Noofpieces must not exceed 99999999999', }) @Min(0, { message: 'Property Noofpieces must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property Noofpieces must be a number' }) @IsDefined({ message: 'Property Noofpieces is required' }) Noofpieces: number; @ApiProperty({ required: false }) @IsNumber() @IsOptional() ItemWeight?: number; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property ItemWeightUOM must be between 0 and 10 characters', }) @IsString() @IsOptional() ItemWeightUOM?: string; @ApiProperty({ required: true }) @Length(0, 2, { message: 'Property GoodsOriginCountry must be between 0 and 2 characters', }) @IsString({ message: 'Property GoodsOriginCountry should be string' }) @IsDefined({ message: 'Property name is required' }) GoodsOriginCountry: string; } export class p_countrytableDTO { @ApiProperty({ required: true }) @Length(0, 1, { message: 'Property VisitTransitInd must be 0 to 1 characters', }) @IsString() @IsDefined({ message: 'Property VisitTransitInd is required' }) VisitTransitInd: string; @ApiProperty({ required: true }) @Length(0, 2, { message: 'Property CountryCode must be between 0 to 2 characters', }) @IsString() @IsDefined({ message: 'Property CountryCode is required' }) CountryCode: string; @ApiProperty({ required: true }) @Max(999, { message: 'Property NoOfTimesEntLeave must not exceed 999' }) @Min(0, { message: 'Property NoOfTimesEntLeave must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property NoOfTimesEntLeave must be a number' }) @IsDefined({ message: 'Property NoOfTimesEntLeave is required' }) NoOfTimesEntLeave: number; } export class SaveCarnetApplicationDTO { @ApiProperty({ required: true }) @Max(999999999, { message: 'Property p_spid must not exceed 999999999' }) @Min(0, { message: 'Property p_spid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_spid must be a number' }) p_spid: number; @ApiProperty({ required: true }) @Max(999999999, { message: 'Property p_clientid must not exceed 999999999' }) @Min(0, { message: 'Property p_clientid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_clientid must be a number' }) p_clientid: number; @ApiProperty({ required: true }) @Max(999999999, { message: 'Property p_locationid must not exceed 999999999', }) @Min(0, { message: 'Property p_locationid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_locationid must be a number' }) p_locationid: number; @ApiProperty({ required: true }) @Length(0, 50, { message: 'Property p_userid must be between 0 to 50 characters', }) @IsString() p_userid: string; @ApiProperty({ required: false }) @Max(999999999, { message: 'Property p_headerid must not exceed 999999999' }) @Min(0, { message: 'Property p_headerid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_headerid must be a number' }) @IsOptional() p_headerid?: number; @ApiProperty({ required: true }) @Length(0, 50, { message: 'Property p_applicationname must be between 0 to 50 characters', }) @IsString() p_applicationname: string; @ApiProperty({ required: false }) @Max(999999999, { message: 'Property p_holderid must not exceed 999999999' }) @Min(0, { message: 'Property p_holderid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_holderid must be a number' }) @IsOptional() p_holderid?: number; @ApiProperty({ required: false }) @Length(0, 1, { message: 'Property p_commercialsampleflag must be between 0 to 1 characters', }) @IsString() @IsOptional() p_commercialsampleflag?: string; @ApiProperty({ required: false }) @Length(0, 1, { message: 'Property p_profequipmentflag must be between 0 to 1 characters', }) @IsString() @IsOptional() p_profequipmentflag?: string; @ApiProperty({ required: false }) @Length(0, 1, { message: 'Property p_exhibitionsfairflag must be between 0 to 1 characters', }) @IsString() @IsOptional() p_exhibitionsfairflag?: string; @ApiProperty({ required: false }) @Length(0, 1, { message: 'Property p_autoflag must be between 0 to 1 characters', }) @IsString() @IsOptional() p_autoflag?: string; @ApiProperty({ required: false }) @Length(0, 1, { message: 'Property p_horseflag must be between 0 to 1 characters', }) @IsString() @IsOptional() p_horseflag?: string; @ApiProperty({ required: false }) @Length(0, 200, { message: 'Property p_authrep must be between 0 to 200 characters', }) @IsString() @IsOptional() p_authrep?: string; @ApiProperty({ required: false, type: () => [p_gltableDTO] }) @Type(() => p_gltableDTO) @ValidateNested({ each: true }) @IsArray() // @ArrayNotEmpty({message:"Property gltable should not be empty"}) @IsOptional() p_gltable?: p_gltableDTO[]; @ApiProperty({ required: false }) @Max(99999, { message: 'Property p_ussets must not exceed 99999' }) @Min(0, { message: 'Property p_ussets must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_ussets must be a number' }) @IsOptional() p_ussets?: number; @ApiProperty({ required: false, type: () => [p_countrytableDTO] }) @ValidateNested({ each: true }) @IsArray() @Type(() => p_countrytableDTO) @IsOptional() p_countrytable?: p_countrytableDTO[]; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property p_shiptotype must be between 0 to 10 characters', }) @IsString() @IsOptional() p_shiptotype?: string; @ApiProperty({ required: false }) @Max(999999999, { message: 'Property p_shipaddrid must not exceed 999999999', }) @Min(0, { message: 'Property p_shipaddrid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_shipaddrid must be a number' }) @IsOptional() p_shipaddrid?: number; @ApiProperty({ required: false }) @Length(0, 1, { message: 'Property p_formofsecurity must be between 0 to 1 characters', }) @IsString() @IsOptional() p_formofsecurity?: string; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property p_insprotection must be between 0 to 10 characters', }) @IsString() @IsOptional() p_insprotection?: string; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property p_ldiprotection must be between 0 to 10 characters', }) @IsString() @IsOptional() p_ldiprotection?: string; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property p_deliverytype must be between 0 to 10 characters', }) @IsString() @IsOptional() p_deliverytype?: string; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property p_deliverymethod must be between 0 to 10 characters', }) @IsString() @IsOptional() p_deliverymethod?: string; @ApiProperty({ required: false }) @Length(0, 10, { message: 'Property p_paymentmethod must be between 0 to 10 characters', }) @IsString() @IsOptional() p_paymentmethod?: string; @ApiProperty({ required: false }) @Length(0, 20, { message: 'Property p_custcourierno must be between 0 to 20 characters', }) @IsString() @IsOptional() p_custcourierno?: string; @ApiProperty({ required: false }) @Length(0, 20, { message: 'Property p_refno must be between 0 to 20 characters', }) @IsString() @IsOptional() p_refno?: string; @ApiProperty({ required: false }) @Length(0, 2000, { message: 'Property p_notes must be between 0 to 2000 characters', }) @IsString() @IsOptional() p_notes?: string; } export class TransmitApplicationtoProcessDTO { @ApiProperty({ required: true }) @Max(999999999, { message: 'Property p_spid must not exceed 999999999' }) @Min(0, { message: 'Property p_spid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_spid must be a number' }) @IsDefined({ message: 'Property p_spid is required' }) p_spid: number; @ApiProperty({ required: true }) @Length(0, 50, { message: 'Property p_userid must be between 0 to 50 characters', }) @IsString() @IsDefined({ message: 'Property p_userid is required' }) p_userid: string; @ApiProperty({ required: true }) @Max(999999999, { message: 'Property p_spid must not exceed 999999999' }) @Min(0, { message: 'Property p_spid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_headerid must be a number' }) @IsDefined({ message: 'Property p_headerid is required' }) p_headerid: number; } export class GetCarnetDetailsbyCarnetStatusDTO { @ApiProperty({ required: true }) @Max(999999999, { message: 'Property p_spid must not exceed 999999999' }) @Min(0, { message: 'Property p_spid must be at least 0 or more' }) @IsInt() @IsNumber({}, { message: 'Property p_spid must be a number' }) @IsDefined({ message: 'Property p_spid is required' }) p_spid: number; @ApiProperty({ required: true }) @Length(0, 50, { message: 'Property p_userid must be between 0 to 50 characters', }) @IsString({ message: 'Property p_userid must be string' }) @IsDefined({ message: 'Property p_userid is required' }) p_userid: string; @ApiProperty({ required: true }) @Length(0, 20, { message: 'Property p_CarnetStatus must be between 0 to 20 characters', }) @IsString() @IsDefined({ message: 'Property p_CarnetStatus is required' }) p_CarnetStatus: string; }