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()
|
||||
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 })
|
||||
@ValidateIf((dto: CreatePaymentMethodDto) => dto.method === PaymentMethodEnum.CreditCard)
|
||||
@IsNotEmpty()
|
||||
@IsString()
|
||||
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 })
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
|
||||
@@ -23,9 +23,21 @@ export class PaymentMethod extends BaseEntity {
|
||||
@Property({ nullable: true })
|
||||
cardNumber?: string;
|
||||
|
||||
@Property({ nullable: true })
|
||||
cardNumber2?: string;
|
||||
|
||||
@Property({ nullable: true })
|
||||
cardNumber3?: string;
|
||||
|
||||
@Property({ nullable: true })
|
||||
cardOwner?: string;
|
||||
|
||||
@Property({ nullable: true })
|
||||
cardOwner2?: string;
|
||||
|
||||
@Property({ nullable: true })
|
||||
cardOwner3?: string;
|
||||
|
||||
@Property({ default: true })
|
||||
enabled: boolean = true;
|
||||
|
||||
|
||||
@@ -7,7 +7,11 @@ export interface PaymentMethodData {
|
||||
order: number;
|
||||
gateway: PaymentGatewayEnum | null;
|
||||
cardNumber?: string;
|
||||
cardNumber2?: string;
|
||||
cardNumber3?: string;
|
||||
cardOwner?: string;
|
||||
cardOwner2?: string;
|
||||
cardOwner3?: string;
|
||||
merchantId?: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,11 @@ export class PaymentMethodsSeeder {
|
||||
order: methodData.order,
|
||||
gateway: methodData.gateway,
|
||||
cardNumber: methodData.cardNumber,
|
||||
cardNumber2: methodData.cardNumber2,
|
||||
cardNumber3: methodData.cardNumber3,
|
||||
cardOwner: methodData.cardOwner,
|
||||
cardOwner2: methodData.cardOwner2,
|
||||
cardOwner3: methodData.cardOwner3,
|
||||
merchantId: methodData.merchantId,
|
||||
});
|
||||
em.persist(paymentMethod);
|
||||
@@ -34,7 +38,11 @@ export class PaymentMethodsSeeder {
|
||||
existing.enabled !== methodData.enabled ||
|
||||
existing.order !== methodData.order ||
|
||||
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.enabled = methodData.enabled;
|
||||
@@ -45,9 +53,21 @@ export class PaymentMethodsSeeder {
|
||||
if (methodData.cardNumber !== undefined) {
|
||||
existing.cardNumber = methodData.cardNumber;
|
||||
}
|
||||
if (methodData.cardNumber2 !== undefined) {
|
||||
existing.cardNumber2 = methodData.cardNumber2;
|
||||
}
|
||||
if (methodData.cardNumber3 !== undefined) {
|
||||
existing.cardNumber3 = methodData.cardNumber3;
|
||||
}
|
||||
if (methodData.cardOwner !== undefined) {
|
||||
existing.cardOwner = methodData.cardOwner;
|
||||
}
|
||||
if (methodData.cardOwner2 !== undefined) {
|
||||
existing.cardOwner2 = methodData.cardOwner2;
|
||||
}
|
||||
if (methodData.cardOwner3 !== undefined) {
|
||||
existing.cardOwner3 = methodData.cardOwner3;
|
||||
}
|
||||
if (methodData.merchantId !== undefined) {
|
||||
existing.merchantId = methodData.merchantId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user