BE/src/dto/uscib-managed-sp/sp-contacts/sp-contacts-property.dto.ts
2025-06-04 17:20:45 +05:30

85 lines
3.5 KiB
TypeScript

import { ApiProperty } from "@nestjs/swagger";
import { Transform } from "class-transformer";
import { IsDefined, IsEmail, IsEnum, IsInt, IsNumber, IsString, Length, Min } from "class-validator";
import { YON } from "src/dto/carnet-application/carnet-application-property.dto";
export class SP_CONTACTID_DTO {
@ApiProperty({ required: true })
@Min(0, { message: 'Property P_SPCONTACTID must be at least 0' })
@IsInt({ message: 'Property P_SPCONTACTID must be a whole number' })
@Transform(({ value }) => Number(value))
@IsNumber({}, { message: 'Property P_SPCONTACTID must be a number' })
@IsDefined({ message: 'Property P_SPCONTACTID is required' })
P_SPCONTACTID: number;
}
export class DEFAULT_CONTACT_FLAG_DTO {
@ApiProperty({ required: true, enum: YON })
@Transform(({ value }) => typeof value === 'string' ? value.trim().toUpperCase() : value)
@IsEnum(YON, { message: 'P_DEFCONTACTFLAG must be either "Y" or "N"' })
@Length(1, 1, { message: 'P_DEFCONTACTFLAG must be between 5 and 6 characters' }) // Note: This message may not match actual length constraint
@IsString()
@IsDefined({ message: "Invalid Request" })
P_DEFCONTACTFLAG: YON;
}
export class FIRSTNAME_DTO {
@ApiProperty({ required: true })
@Length(0, 50, { message: 'Property P_FIRSTNAME must be between 0 to 50 characters' })
@IsString({ message: 'Property FirP_FIRSTNAMEstName must be a string' })
@IsDefined({ message: 'Property P_FIRSTNAME is required' })
P_FIRSTNAME: string;
}
export class LASTNAME_DTO {
@ApiProperty({ required: true })
@Length(0, 50, { message: 'Property P_LASTNAME must be between 0 to 50 characters' })
@IsString({ message: 'Property P_LASTNAME must be a string' })
@IsDefined({ message: 'Property P_LASTNAME is required' })
P_LASTNAME: string;
}
export class MIDDLE_INITIAL_DTO {
@ApiProperty({ required: true })
@Length(0, 3, { message: 'Property P_MIDDLEINITIAL must be between 0 to 3 characters' })
@IsString({ message: 'Property P_MIDDLEINITIAL must be a string' })
P_MIDDLEINITIAL: string;
}
export class TITLE_DTO {
@ApiProperty({ required: true })
@Length(0, 50, { message: 'Property P_TITLE must be between 0 to 50 characters' })
@IsString({ message: 'Property P_TITLE must be a string' })
P_TITLE: string;
}
export class PHONE_NO_DTO {
@ApiProperty({ required: true })
@Length(0, 20, { message: 'Property P_PHONENO must be between 0 to 20 characters' })
@IsString({ message: 'Property P_PHONENO must be a string' })
@IsDefined({ message: 'Property P_PHONENO is required' })
P_PHONENO: string;
}
export class MOBILE_NO_DTO {
@ApiProperty({ required: true })
@Length(0, 20, { message: 'Property P_MOBILENO must be between 0 to 20 characters' })
@IsString({ message: 'Property P_MOBILENO must be a string' })
@IsDefined({ message: 'Property P_MOBILENO is required' })
P_MOBILENO: string;
}
export class FAX_NO_DTO {
@ApiProperty({ required: true })
@Length(0, 20, { message: 'Property FAXNO must be between 0 to 20 characters' })
@IsString({ message: 'Property FAXNO must be a string' })
P_FAXNO: string;
}
export class EMAIL_ADDRESS_DTO {
@ApiProperty({ required: true })
@Length(0, 100, { message: 'Property P_EMAILADDRESS must be between 0 to 100 characters' })
@IsString({ message: 'Property P_EMAILADDRESS must be a string' })
@IsDefined({ message: 'Property P_EMAILADDRESS is required' })
P_EMAILADDRESS: string;
}