import { ApiProperty, IntersectionType } from '@nestjs/swagger'; import { Transform, Type } from 'class-transformer'; import { IsEmail, IsEnum, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator'; import { APPLICATIONNAME_DTO } from 'src/dto/property.dto'; export class AuthLoginDTO { @ApiProperty({ required: true }) @IsString() P_EMAILADDR: string; @ApiProperty({ required: true }) @IsString() P_PASSWORD: string; } export class AuthLoginOnlyDTO extends IntersectionType(AuthLoginDTO, APPLICATIONNAME_DTO) { } export enum MailTypeDTO { REGISTER_CLIENT = "REGISTER_CLIENT", REGISTER_SP = "REGISTER_SP", REGISTER_USCIB = "REGISTER_USCIB", FORGOT_PASSWORD = "FORGOT_PASSWORD" // DEMO_MAIL = "DEMO_MAIL" } export class SendMailDTO { @ApiProperty({ required: true, example: 'user@example.com' }) @IsEmail({}, { message: 'P_TO must be a valid email address' }) P_TO: string; @ApiProperty({ enum: MailTypeDTO, required: true }) @Transform(({ value }) => value?.toUpperCase()) @IsEnum(MailTypeDTO, { message: "Invalid P_MAIL_TYPE" }) P_MAIL_TYPE: MailTypeDTO; } export class MailContextDTO { @ApiProperty({ required: true }) @IsString() to: string; @ApiProperty({ required: true }) @IsString() url: string; } export class MailTemplateDTO { @ApiProperty({ required: true }) @IsString() to: string; @ApiProperty({ required: true }) @IsString() subject: string; @ApiProperty({ required: true }) @IsString() templateName: string; @IsOptional() @IsObject() variables?: Record; }