feat: working on money requests jounrey

This commit is contained in:
Abdalhamid Alhamad
2024-12-18 12:57:23 +03:00
parent 33453b193f
commit ed57ce6e91
23 changed files with 465 additions and 2 deletions

View File

@ -0,0 +1,37 @@
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { IsDateString, IsEnum, IsNotEmpty, IsNumber, IsOptional, IsString, Max, Min } from 'class-validator';
import { i18nValidationMessage as i18n } from 'nestjs-i18n';
import { MoneyRequestFrequency } from '~/money-request/enums';
const MIN_REQUESTED_AMOUNT = 0.01;
const MAX_REQUESTED_AMOUNT = 1000000;
export class CreateMoneyRequestRequestDto {
@Min(MIN_REQUESTED_AMOUNT, {
message: i18n('validation.Min', { path: 'general', property: 'moneyRequest.requestedAmount' }),
})
@Max(MAX_REQUESTED_AMOUNT, {
message: i18n('validation.Max', { path: 'general', property: 'moneyRequest.requestedAmount' }),
})
@IsNumber(
{ allowNaN: false },
{ message: i18n('validation.IsNumber', { path: 'general', property: 'moneyRequest.requestedAmount' }) },
)
@ApiProperty()
requestedAmount!: number;
@ApiProperty()
@IsString({ message: i18n('validation.IsString', { path: 'general', property: 'moneyRequest.message' }) })
@IsNotEmpty({ message: i18n('validation.IsNotEmpty', { path: 'general', property: 'moneyRequest.message' }) })
message!: string;
@ApiPropertyOptional({ example: MoneyRequestFrequency.ONE_TIME })
@IsEnum(MoneyRequestFrequency, {
message: i18n('validation.IsEnum', { path: 'general', property: 'moneyRequest.frequency' }),
})
@IsOptional()
frequency: MoneyRequestFrequency = MoneyRequestFrequency.ONE_TIME;
@ApiPropertyOptional({ example: '2021-01-01' })
@IsDateString({}, { message: i18n('validation.IsDateString', { path: 'general', property: 'moneyRequest.endDate' }) })
@IsOptional()
endDate?: string;
}