BE/src/auth/auth.dto.ts

64 lines
1.5 KiB
TypeScript
Raw Normal View History

import { ApiProperty, IntersectionType } from '@nestjs/swagger';
2025-07-02 17:37:04 +05:30
import { Transform, Type } from 'class-transformer';
2025-07-21 21:09:33 +05:30
import { IsEmail, IsEnum, IsObject, IsOptional, IsString, ValidateNested } from 'class-validator';
import { APPLICATIONNAME_DTO } from 'src/dto/property.dto';
2025-02-24 10:32:41 +05:30
export class AuthLoginDTO {
@ApiProperty({ required: true })
@IsString()
2025-06-09 16:46:22 +05:30
P_EMAILADDR: string;
2025-02-24 10:32:41 +05:30
@ApiProperty({ required: true })
@IsString()
2025-06-09 16:46:22 +05:30
P_PASSWORD: string;
2025-07-02 17:37:04 +05:30
}
export class AuthLoginOnlyDTO extends IntersectionType(AuthLoginDTO, APPLICATIONNAME_DTO) { }
2025-07-02 17:37:04 +05:30
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()
2025-07-21 21:09:33 +05:30
templateName: string;
2025-07-02 17:37:04 +05:30
2025-07-21 21:09:33 +05:30
@IsOptional()
@IsObject()
variables?: Record<string, any>;
2025-06-16 15:53:15 +05:30
}