diff --git a/src/modules/payments/entities/payment.entity.ts b/src/modules/payments/entities/payment.entity.ts index 4fec3e2..b40808d 100644 --- a/src/modules/payments/entities/payment.entity.ts +++ b/src/modules/payments/entities/payment.entity.ts @@ -11,8 +11,8 @@ export class Payment extends BaseEntity { @Property({ type: 'decimal', precision: 10, scale: 0 }) amount!: number; - @Property({ unique: true }) - authority!: string; + @Property({ unique: true, nullable: true }) + authority?: string | null; @Enum(() => PaymentGatewayEnum) gateway?: PaymentGatewayEnum | null = null; @@ -26,12 +26,12 @@ export class Payment extends BaseEntity { @Property({ nullable: true }) cardPan?: string | null = null; - @Property({ type: 'json' }) - verifyResponse?: Record; + @Property({ type: 'json', nullable: true }) + verifyResponse?: Record | null = null; @Property({ nullable: true }) - paidAt: Date; + paidAt?: Date | null = null; @Property({ nullable: true }) - failedAt: Date; + failedAt?: Date | null = null; } diff --git a/src/modules/payments/payments.module.ts b/src/modules/payments/payments.module.ts index d0cd741..0ea6776 100644 --- a/src/modules/payments/payments.module.ts +++ b/src/modules/payments/payments.module.ts @@ -9,9 +9,10 @@ import { Restaurant } from '../restaurants/entities/restaurant.entity'; import { PaymentsController } from './controllers/payments.controller'; import { AuthModule } from '../auth/auth.module'; import { JwtModule } from '@nestjs/jwt'; +import { Payment } from './entities/payment.entity'; @Module({ - imports: [MikroOrmModule.forFeature([PaymentMethod, Restaurant]), AuthModule, JwtModule], + imports: [MikroOrmModule.forFeature([PaymentMethod, Payment, Restaurant]), AuthModule, JwtModule], controllers: [PaymentsController], providers: [PaymentsService, PaymentMethodService, PaymentMethodRepository, PaymentGatewayService], exports: [ diff --git a/src/modules/payments/services/payment-gateway.service.ts b/src/modules/payments/services/payment-gateway.service.ts index 2cad649..a09cfff 100644 --- a/src/modules/payments/services/payment-gateway.service.ts +++ b/src/modules/payments/services/payment-gateway.service.ts @@ -94,7 +94,7 @@ export class PaymentGatewayService { } zarinpalPaymentUrl(gateway: PaymentGatewayEnum | null, authority: string | null) { - if (gateway === PaymentGatewayEnum.ZarinPal) { + if (gateway === PaymentGatewayEnum.ZarinPal && authority) { return `${this.zarinpalPaymentBaseUrl}/${authority}`; } return null; diff --git a/src/seeders/data/payment-methods.data.ts b/src/seeders/data/payment-methods.data.ts index e8ac316..47d9156 100644 --- a/src/seeders/data/payment-methods.data.ts +++ b/src/seeders/data/payment-methods.data.ts @@ -34,7 +34,6 @@ export const paymentMethodsData: PaymentMethodData[] = [ enabled: true, order: 3, gateway: PaymentGatewayEnum.ZarinPal, - merchantId: 'test-merchant-id', + merchantId: 'b6f55bd0-6eae-4045-aeb8-07d084fa8f73', }, ]; -