chore: normalize the payment and payment transaction
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { ApiProperty } from "@nestjs/swagger";
|
||||
import { IsBoolean, IsNotEmpty, IsNumberString, IsString, Length } from "class-validator";
|
||||
|
||||
import { PaymentMessage } from "../../../common/enums/message.enum";
|
||||
|
||||
export class CreateBankAccountDto {
|
||||
@IsNotEmpty({ message: PaymentMessage.CARD_NUMBER_REQUIRED })
|
||||
@IsNumberString({ no_symbols: true }, { message: PaymentMessage.CARD_NUMBER_NUMBER_STRING })
|
||||
@Length(16, 16, { message: PaymentMessage.CARD_NUMBER_LENGTH })
|
||||
@ApiProperty({ description: "card number", example: "1234567812345678" })
|
||||
cardNumber: string;
|
||||
|
||||
@IsNotEmpty({ message: PaymentMessage.IBAN_REQUIRED })
|
||||
@IsNumberString({ no_symbols: true }, { message: PaymentMessage.IBAN_NUMBER_STRING })
|
||||
// @IsIBAN({ message: PaymentMessage.IBAN_INVALID })
|
||||
@Length(24, 24, { message: PaymentMessage.IBAN_INVALID })
|
||||
@ApiProperty({ description: "IBAN number", example: "123456789012345678901234" })
|
||||
IBan: string;
|
||||
|
||||
@IsNotEmpty({ message: PaymentMessage.BANK_NAME_REQUIRED })
|
||||
@IsString({ message: PaymentMessage.BANK_NAME_STRING })
|
||||
@Length(2, 100, { message: PaymentMessage.BANK_NAME_LENGTH })
|
||||
@ApiProperty({ description: "bank name", example: "Example Bank" })
|
||||
bankName: string;
|
||||
|
||||
@IsNotEmpty({ message: PaymentMessage.ACCOUNT_OWNER_NAME_REQUIRED })
|
||||
@IsString({ message: PaymentMessage.ACCOUNT_OWNER_NAME_STRING })
|
||||
@Length(3, 150, { message: PaymentMessage.ACCOUNT_OWNER_NAME_LENGTH })
|
||||
@ApiProperty({ description: "account owner name", example: "John Doe" })
|
||||
accountOwnerName: string;
|
||||
|
||||
@IsNotEmpty({ message: PaymentMessage.IS_ACTIVE_REQUIRED })
|
||||
@IsBoolean({ message: PaymentMessage.IS_ACTIVE_BOOLEAN })
|
||||
@ApiProperty({ description: "specify that bank account is active", example: true })
|
||||
isActive: boolean;
|
||||
}
|
||||
@@ -2,7 +2,7 @@ import { ApiProperty } from "@nestjs/swagger";
|
||||
import { IsEnum, IsInt, IsNotEmpty, IsUUID, IsUrl, Min } from "class-validator";
|
||||
|
||||
import { WalletMessage } from "../../../common/enums/message.enum";
|
||||
import { GatewayEnum } from "../enums/gateway.enum";
|
||||
import { TransferMethod } from "../enums/payment-type.enum";
|
||||
|
||||
export class DepositDto {
|
||||
@IsNotEmpty({ message: WalletMessage.AMOUNT_REQUIRED })
|
||||
@@ -13,24 +13,30 @@ export class DepositDto {
|
||||
}
|
||||
|
||||
export class GatewayDepositDto extends DepositDto {
|
||||
// @IsNotEmpty({ message: WalletMessage.GATEWAY_REQUIRED })
|
||||
// @IsEnum(GatewayEnum)
|
||||
// @ApiProperty({ description: "Gateway to use", example: "zarinpal" })
|
||||
// gateway: GatewayEnum;
|
||||
|
||||
@IsNotEmpty({ message: WalletMessage.GATEWAY_REQUIRED })
|
||||
@IsEnum(GatewayEnum)
|
||||
@ApiProperty({ description: "Gateway to use", example: "zarinpal" })
|
||||
gateway: GatewayEnum;
|
||||
@IsUUID("4", { message: WalletMessage.GATEWAY_ID_SHOULD_BE_UUID })
|
||||
@ApiProperty({ description: "Gateway id to pay", example: "e6fdce2a-9f91-47c4-8561-48368fc275b5" })
|
||||
gatewayId: string;
|
||||
}
|
||||
|
||||
export class CardToCardDepositDto extends DepositDto {
|
||||
export class TransferDepositDto extends DepositDto {
|
||||
@IsNotEmpty({ message: WalletMessage.RECEIPT_URL_REQUIRED })
|
||||
@IsUrl({ protocols: ["http", "https"], require_protocol: true }, { message: WalletMessage.RECEIPT_URL_SHOULD_BE_URL })
|
||||
@ApiProperty({ description: "the " })
|
||||
@ApiProperty({ description: "the transferReceipt url", example: "https://example.com/image.png" })
|
||||
transferReceiptUrl: string;
|
||||
|
||||
@IsNotEmpty({ message: WalletMessage.BANK_ACCOUNT_ID_REQUIRED })
|
||||
@IsUUID("4", { message: WalletMessage.BANK_ACCOUNT_ID_SHOULD_BE_UUID })
|
||||
@ApiProperty({ description: "bank account id", example: "e6fdce2a-9f91-47c4-8561-48368fc275b5" })
|
||||
bankAccountId: string;
|
||||
}
|
||||
|
||||
// @IsNotEmpty({ message: WalletMessage.DEPOSIT_TYPE_REQUIRED })
|
||||
// @IsEnum(DepositType)
|
||||
// @ApiProperty({ description: "Deposit type", example: DepositType.GATEWAY })
|
||||
// depositType: DepositType;
|
||||
@IsNotEmpty({ message: WalletMessage.TRANSFER_METHOD_REQUIRED })
|
||||
@IsEnum(TransferMethod)
|
||||
@ApiProperty({ description: "transfer method", example: TransferMethod.CARD_TO_CARD, enum: TransferMethod })
|
||||
method: TransferMethod;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import { ApiPropertyOptional } from "@nestjs/swagger";
|
||||
import { IsDateString, IsEnum, IsOptional, IsString } from "class-validator";
|
||||
|
||||
import { PaginationDto } from "../../../common/DTO/pagination.dto";
|
||||
import { PaymentStatus } from "../enums/payment-status.enum";
|
||||
|
||||
export class SearchTransactionQueryDto extends PaginationDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@ApiPropertyOptional({ description: "user name or family or ...", example: "mamad" })
|
||||
user?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsDateString()
|
||||
@ApiPropertyOptional({ description: "the date string", example: "2024-01-25" })
|
||||
date?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsEnum(PaymentStatus)
|
||||
@ApiPropertyOptional({ enum: PaymentStatus, description: "payment status", example: PaymentStatus.PENDING })
|
||||
status?: PaymentStatus;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@ApiPropertyOptional({ description: "search quey", example: "harchi" })
|
||||
q?: string;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PartialType } from "@nestjs/swagger";
|
||||
|
||||
import { CreateBankAccountDto } from "./create-bankaccount.dto";
|
||||
|
||||
export class UpdateBankAccountDto extends PartialType(CreateBankAccountDto) {}
|
||||
Reference in New Issue
Block a user