refactor(nestjs): banking module

This commit is contained in:
Ahmed Bouhuolia
2025-06-02 15:41:41 +02:00
parent deadd5ac80
commit 7247b52fe5
22 changed files with 573 additions and 106 deletions

View File

@@ -6,23 +6,47 @@ import {
} from 'class-validator';
import { NumberFormatQueryDto } from './NumberFormatQuery.dto';
import { Type } from 'class-transformer';
import { ApiProperty } from '@nestjs/swagger';
export class GetBankTransactionsQueryDto {
@IsOptional()
@Type(() => Number)
@IsNumber()
@ApiProperty({
description: 'Page number for pagination',
required: false,
type: Number,
example: 1
})
page: number;
@IsOptional()
@Type(() => Number)
@IsNumber()
@ApiProperty({
description: 'Number of items per page',
required: false,
type: Number,
example: 10
})
pageSize: number;
@IsNotEmpty()
@Type(() => Number)
@IsNumber()
@ApiProperty({
description: 'Bank account ID',
required: true,
type: Number,
example: 1
})
accountId: number;
@IsOptional()
@ApiProperty({
description: 'Number format options',
required: false,
type: NumberFormatQueryDto
})
numberFormat: NumberFormatQueryDto;
}

View File

@@ -0,0 +1,31 @@
import { IsOptional } from "class-validator";
import { ApiProperty } from "@nestjs/swagger";
export class GetPendingTransactionsQueryDto {
@IsOptional()
@ApiProperty({
description: 'Page number for pagination',
required: false,
type: Number,
example: 1
})
page?: number;
@IsOptional()
@ApiProperty({
description: 'Number of items per page',
required: false,
type: Number,
example: 10
})
pageSize?: number;
@IsOptional()
@ApiProperty({
description: 'Filter by bank account ID',
required: false,
type: Number,
example: 1
})
accountId?: number;
}

View File

@@ -0,0 +1,58 @@
import { IsOptional } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
export class GetUncategorizedTransactionsQueryDto {
@IsOptional()
@ApiProperty({
description: 'Page number for pagination',
required: false,
type: Number,
example: 1
})
page?: number;
@IsOptional()
@ApiProperty({
description: 'Number of items per page',
required: false,
type: Number,
example: 10
})
pageSize?: number;
@IsOptional()
@ApiProperty({
description: 'Minimum date for filtering transactions',
required: false,
type: Date,
example: '2023-01-01'
})
minDate?: Date;
@IsOptional()
@ApiProperty({
description: 'Maximum date for filtering transactions',
required: false,
type: Date,
example: '2023-12-31'
})
maxDate?: Date;
@IsOptional()
@ApiProperty({
description: 'Minimum amount for filtering transactions',
required: false,
type: Number,
example: 100
})
minAmount?: number;
@IsOptional()
@ApiProperty({
description: 'Maximum amount for filtering transactions',
required: false,
type: Number,
example: 1000
})
maxAmount?: number;
}