feat: payment service with IPG

This commit is contained in:
matin jamshidi
2025-01-03 11:29:33 +03:30
parent f2fb7188ad
commit 6c80c1138f
23 changed files with 495 additions and 96 deletions
+23 -10
View File
@@ -1,5 +1,6 @@
import mongoose from "mongoose";
import { PaymentStatus } from "src/common/eNums/paymentStatus.enum";
export const PaymentSchema = new mongoose.Schema({
userId: {
@@ -7,31 +8,43 @@ export const PaymentSchema = new mongoose.Schema({
ref: 'users',
required: true
},
courseId: {
type: mongoose.Types.ObjectId,
ref: 'courses',
required: true
},
authority: {
type: String,
required: true
},
amount: {
type: Number,
required: true
},
paymentNumber: {
transactionNumber: {
type: String,
required: true,
default: null
},
reason: {
paymentStatus: {
type: String,
enum: ['deposit', 'withdrawal'],
enum: PaymentStatus,
default: PaymentStatus.Pending,
required: true
},
},
{
collection: 'payments',
timestamps: true,
},
{
collection: 'payments',
timestamps: true,
},
);
export interface Payment extends mongoose.Document {
userId: mongoose.Types.ObjectId;
amount: number;
paymentNumber: string;
reason: 'deposit' | 'withdrawal';
authority: string;
courseId: mongoose.Types.ObjectId;
transactionNumber: string;
paymentStatus: PaymentStatus;
createdAt: Date;
updatedAt: Date;
}