mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 22:18:12 +00:00
46 lines
1.8 KiB
TypeScript
46 lines
1.8 KiB
TypeScript
import { IsString, IsEnum, IsOptional } from 'class-validator';
|
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { PaymentIntentStatus } from '@prisma/client';
|
|
|
|
export enum PaymentMethodTypeEnum { TELEBIRR = 'TELEBIRR', CBE_BIRR = 'CBE_BIRR', EBIRR = 'EBIRR', CARD = 'CARD', WALLET = 'WALLET' }
|
|
|
|
export class InitiatePaymentDto {
|
|
@ApiProperty() @IsString() bookingId: string;
|
|
@ApiProperty({ enum: PaymentMethodTypeEnum }) @IsEnum(PaymentMethodTypeEnum) method: PaymentMethodTypeEnum;
|
|
@ApiPropertyOptional() @IsOptional() @IsString() paymentMethodId?: string;
|
|
}
|
|
|
|
export class RefundDto {
|
|
@ApiProperty() @IsString() bookingId: string;
|
|
@ApiPropertyOptional() @IsOptional() @IsString() reason?: string;
|
|
}
|
|
|
|
export class AddPaymentMethodDto {
|
|
@ApiProperty() @IsString() userId: string;
|
|
@ApiProperty({ enum: PaymentMethodTypeEnum }) @IsEnum(PaymentMethodTypeEnum) type: PaymentMethodTypeEnum;
|
|
@ApiProperty() @IsString() displayName: string;
|
|
@ApiPropertyOptional() @IsOptional() @IsString() maskedHint?: string;
|
|
}
|
|
|
|
export class ClientActionDto {
|
|
@ApiProperty({ enum: ['REDIRECT'] }) type: 'REDIRECT';
|
|
@ApiProperty() url: string;
|
|
}
|
|
|
|
export class InitiateResponseDto {
|
|
@ApiProperty() intentId: string;
|
|
@ApiProperty({ enum: PaymentIntentStatus }) status: PaymentIntentStatus;
|
|
@ApiPropertyOptional({ type: ClientActionDto }) clientAction?: ClientActionDto;
|
|
@ApiPropertyOptional() merchantOrderId?: string;
|
|
}
|
|
|
|
export class IntentStatusDto {
|
|
@ApiProperty() intentId: string;
|
|
@ApiProperty({ enum: PaymentIntentStatus }) status: PaymentIntentStatus;
|
|
@ApiPropertyOptional({ type: ClientActionDto }) clientAction?: ClientActionDto;
|
|
@ApiPropertyOptional() merchantOrderId?: string;
|
|
@ApiPropertyOptional() paidAt?: string;
|
|
@ApiPropertyOptional() failureCode?: string;
|
|
@ApiPropertyOptional() failureMessage?: string;
|
|
}
|