extra car number
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-06-20 20:47:12 +03:30
parent 2786010f0d
commit cbcb3bb67f
5 changed files with 70 additions and 1 deletions
@@ -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;
+4
View File
@@ -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;
}
+21 -1
View File
@@ -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;
}