This commit is contained in:
+13
@@ -0,0 +1,13 @@
|
|||||||
|
import { Migration } from '@mikro-orm/migrations';
|
||||||
|
|
||||||
|
export class Migration20260620180000_add_extra_card_fields_to_payment_methods extends Migration {
|
||||||
|
|
||||||
|
override async up(): Promise<void> {
|
||||||
|
this.addSql(`alter table "payment_methods" add column "card_number2" varchar(255) null, add column "card_number3" varchar(255) null, add column "card_owner2" varchar(255) null, add column "card_owner3" varchar(255) null;`);
|
||||||
|
}
|
||||||
|
|
||||||
|
override async down(): Promise<void> {
|
||||||
|
this.addSql(`alter table "payment_methods" drop column "card_number2", drop column "card_number3", drop column "card_owner2", drop column "card_owner3";`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -23,12 +23,32 @@ export class CreatePaymentMethodDto {
|
|||||||
@IsString()
|
@IsString()
|
||||||
cardNumber?: string;
|
cardNumber?: string;
|
||||||
|
|
||||||
|
@ApiProperty({ description: 'Second card number for card-to-card payments', required: false })
|
||||||
|
@IsOptional()
|
||||||
|
@IsString()
|
||||||
|
cardNumber2?: string;
|
||||||
|
|
||||||
|
@ApiProperty({ description: 'Third card number for card-to-card payments', required: false })
|
||||||
|
@IsOptional()
|
||||||
|
@IsString()
|
||||||
|
cardNumber3?: string;
|
||||||
|
|
||||||
@ApiProperty({ description: 'Card owner name for card-to-card payments', required: false })
|
@ApiProperty({ description: 'Card owner name for card-to-card payments', required: false })
|
||||||
@ValidateIf((dto: CreatePaymentMethodDto) => dto.method === PaymentMethodEnum.CreditCard)
|
@ValidateIf((dto: CreatePaymentMethodDto) => dto.method === PaymentMethodEnum.CreditCard)
|
||||||
@IsNotEmpty()
|
@IsNotEmpty()
|
||||||
@IsString()
|
@IsString()
|
||||||
cardOwner?: string;
|
cardOwner?: string;
|
||||||
|
|
||||||
|
@ApiProperty({ description: 'Second card owner name for card-to-card payments', required: false })
|
||||||
|
@IsOptional()
|
||||||
|
@IsString()
|
||||||
|
cardOwner2?: string;
|
||||||
|
|
||||||
|
@ApiProperty({ description: 'Third card owner name for card-to-card payments', required: false })
|
||||||
|
@IsOptional()
|
||||||
|
@IsString()
|
||||||
|
cardOwner3?: string;
|
||||||
|
|
||||||
@ApiProperty({ description: 'Is payment method enabled', required: false, default: true })
|
@ApiProperty({ description: 'Is payment method enabled', required: false, default: true })
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsBoolean()
|
@IsBoolean()
|
||||||
|
|||||||
@@ -23,9 +23,21 @@ export class PaymentMethod extends BaseEntity {
|
|||||||
@Property({ nullable: true })
|
@Property({ nullable: true })
|
||||||
cardNumber?: string;
|
cardNumber?: string;
|
||||||
|
|
||||||
|
@Property({ nullable: true })
|
||||||
|
cardNumber2?: string;
|
||||||
|
|
||||||
|
@Property({ nullable: true })
|
||||||
|
cardNumber3?: string;
|
||||||
|
|
||||||
@Property({ nullable: true })
|
@Property({ nullable: true })
|
||||||
cardOwner?: string;
|
cardOwner?: string;
|
||||||
|
|
||||||
|
@Property({ nullable: true })
|
||||||
|
cardOwner2?: string;
|
||||||
|
|
||||||
|
@Property({ nullable: true })
|
||||||
|
cardOwner3?: string;
|
||||||
|
|
||||||
@Property({ default: true })
|
@Property({ default: true })
|
||||||
enabled: boolean = true;
|
enabled: boolean = true;
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,11 @@ export interface PaymentMethodData {
|
|||||||
order: number;
|
order: number;
|
||||||
gateway: PaymentGatewayEnum | null;
|
gateway: PaymentGatewayEnum | null;
|
||||||
cardNumber?: string;
|
cardNumber?: string;
|
||||||
|
cardNumber2?: string;
|
||||||
|
cardNumber3?: string;
|
||||||
cardOwner?: string;
|
cardOwner?: string;
|
||||||
|
cardOwner2?: string;
|
||||||
|
cardOwner3?: string;
|
||||||
merchantId?: string;
|
merchantId?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,11 @@ export class PaymentMethodsSeeder {
|
|||||||
order: methodData.order,
|
order: methodData.order,
|
||||||
gateway: methodData.gateway,
|
gateway: methodData.gateway,
|
||||||
cardNumber: methodData.cardNumber,
|
cardNumber: methodData.cardNumber,
|
||||||
|
cardNumber2: methodData.cardNumber2,
|
||||||
|
cardNumber3: methodData.cardNumber3,
|
||||||
cardOwner: methodData.cardOwner,
|
cardOwner: methodData.cardOwner,
|
||||||
|
cardOwner2: methodData.cardOwner2,
|
||||||
|
cardOwner3: methodData.cardOwner3,
|
||||||
merchantId: methodData.merchantId,
|
merchantId: methodData.merchantId,
|
||||||
});
|
});
|
||||||
em.persist(paymentMethod);
|
em.persist(paymentMethod);
|
||||||
@@ -34,7 +38,11 @@ export class PaymentMethodsSeeder {
|
|||||||
existing.enabled !== methodData.enabled ||
|
existing.enabled !== methodData.enabled ||
|
||||||
existing.order !== methodData.order ||
|
existing.order !== methodData.order ||
|
||||||
existing.cardNumber !== methodData.cardNumber ||
|
existing.cardNumber !== methodData.cardNumber ||
|
||||||
existing.cardOwner !== methodData.cardOwner
|
existing.cardNumber2 !== methodData.cardNumber2 ||
|
||||||
|
existing.cardNumber3 !== methodData.cardNumber3 ||
|
||||||
|
existing.cardOwner !== methodData.cardOwner ||
|
||||||
|
existing.cardOwner2 !== methodData.cardOwner2 ||
|
||||||
|
existing.cardOwner3 !== methodData.cardOwner3
|
||||||
) {
|
) {
|
||||||
existing.description = methodData.description;
|
existing.description = methodData.description;
|
||||||
existing.enabled = methodData.enabled;
|
existing.enabled = methodData.enabled;
|
||||||
@@ -45,9 +53,21 @@ export class PaymentMethodsSeeder {
|
|||||||
if (methodData.cardNumber !== undefined) {
|
if (methodData.cardNumber !== undefined) {
|
||||||
existing.cardNumber = methodData.cardNumber;
|
existing.cardNumber = methodData.cardNumber;
|
||||||
}
|
}
|
||||||
|
if (methodData.cardNumber2 !== undefined) {
|
||||||
|
existing.cardNumber2 = methodData.cardNumber2;
|
||||||
|
}
|
||||||
|
if (methodData.cardNumber3 !== undefined) {
|
||||||
|
existing.cardNumber3 = methodData.cardNumber3;
|
||||||
|
}
|
||||||
if (methodData.cardOwner !== undefined) {
|
if (methodData.cardOwner !== undefined) {
|
||||||
existing.cardOwner = methodData.cardOwner;
|
existing.cardOwner = methodData.cardOwner;
|
||||||
}
|
}
|
||||||
|
if (methodData.cardOwner2 !== undefined) {
|
||||||
|
existing.cardOwner2 = methodData.cardOwner2;
|
||||||
|
}
|
||||||
|
if (methodData.cardOwner3 !== undefined) {
|
||||||
|
existing.cardOwner3 = methodData.cardOwner3;
|
||||||
|
}
|
||||||
if (methodData.merchantId !== undefined) {
|
if (methodData.merchantId !== undefined) {
|
||||||
existing.merchantId = methodData.merchantId;
|
existing.merchantId = methodData.merchantId;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user