@mac777/project-pinecone-models 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Payout.d.ts CHANGED
@@ -2,67 +2,112 @@ import mongoose from 'mongoose';
2
2
  declare const payoutSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
3
3
  timestamps: true;
4
4
  }, {
5
+ rejectionReason: string;
6
+ status: "pending" | "approved" | "completed" | "failed" | "processing" | "on_hold";
7
+ adminNotes: string;
8
+ currency: string;
9
+ paymentProcessingFee: number;
10
+ platformFee: number;
11
+ hostId: mongoose.Types.ObjectId;
12
+ eventId: mongoose.Types.ObjectId;
13
+ paymentMethod: "bkash" | "bank_transfer" | "mobile_banking";
14
+ refundAmount: number;
15
+ failedAt: NativeDate;
16
+ payoutNumber: string;
17
+ grossRevenue: number;
18
+ netPayout: number;
19
+ totalOrders: number;
20
+ confirmedOrders: number;
21
+ refundedOrders: number;
22
+ totalTicketsSold: number;
23
+ approvedBy: mongoose.Types.ObjectId;
24
+ approvedAt: NativeDate;
25
+ rejectedBy: mongoose.Types.ObjectId;
26
+ rejectedAt: NativeDate;
27
+ accountNumber: string;
28
+ accountName: string;
29
+ initiatedAt: NativeDate;
30
+ completedAt: NativeDate;
31
+ transactionId: string;
32
+ hostNotes: string;
33
+ requiresReview: boolean;
34
+ reviewReason: string;
35
+ onHold: boolean;
36
+ holdReason: string;
5
37
  createdAt?: NativeDate | null | undefined;
6
- status?: string | null | undefined;
7
- amount?: number | null | undefined;
8
- platformFee?: number | null | undefined;
9
- hostId?: mongoose.Types.ObjectId | null | undefined;
10
- eventId?: mongoose.Types.ObjectId | null | undefined;
11
- paymentFee?: number | null | undefined;
12
- totalRevenue?: number | null | undefined;
13
- approvedBy?: mongoose.Types.ObjectId | null | undefined;
14
- approvedAt?: NativeDate | null | undefined;
15
- processedAt?: NativeDate | null | undefined;
16
- completedAt?: NativeDate | null | undefined;
17
- transactionId?: string | null | undefined;
18
- notes?: string | null | undefined;
19
- bankDetails?: {
20
- method: "bkash" | "bank_transfer" | "nagad" | "upay" | "rocket";
21
- accountNumber?: string | null | undefined;
22
- accountName?: string | null | undefined;
23
- } | null | undefined;
38
+ updatedAt?: NativeDate | null | undefined;
24
39
  } & mongoose.DefaultTimestampProps, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
40
+ rejectionReason: string;
41
+ status: "pending" | "approved" | "completed" | "failed" | "processing" | "on_hold";
42
+ adminNotes: string;
43
+ currency: string;
44
+ paymentProcessingFee: number;
45
+ platformFee: number;
46
+ hostId: mongoose.Types.ObjectId;
47
+ eventId: mongoose.Types.ObjectId;
48
+ paymentMethod: "bkash" | "bank_transfer" | "mobile_banking";
49
+ refundAmount: number;
50
+ failedAt: NativeDate;
51
+ payoutNumber: string;
52
+ grossRevenue: number;
53
+ netPayout: number;
54
+ totalOrders: number;
55
+ confirmedOrders: number;
56
+ refundedOrders: number;
57
+ totalTicketsSold: number;
58
+ approvedBy: mongoose.Types.ObjectId;
59
+ approvedAt: NativeDate;
60
+ rejectedBy: mongoose.Types.ObjectId;
61
+ rejectedAt: NativeDate;
62
+ accountNumber: string;
63
+ accountName: string;
64
+ initiatedAt: NativeDate;
65
+ completedAt: NativeDate;
66
+ transactionId: string;
67
+ hostNotes: string;
68
+ requiresReview: boolean;
69
+ reviewReason: string;
70
+ onHold: boolean;
71
+ holdReason: string;
25
72
  createdAt?: NativeDate | null | undefined;
26
- status?: string | null | undefined;
27
- amount?: number | null | undefined;
28
- platformFee?: number | null | undefined;
29
- hostId?: mongoose.Types.ObjectId | null | undefined;
30
- eventId?: mongoose.Types.ObjectId | null | undefined;
31
- paymentFee?: number | null | undefined;
32
- totalRevenue?: number | null | undefined;
33
- approvedBy?: mongoose.Types.ObjectId | null | undefined;
34
- approvedAt?: NativeDate | null | undefined;
35
- processedAt?: NativeDate | null | undefined;
36
- completedAt?: NativeDate | null | undefined;
37
- transactionId?: string | null | undefined;
38
- notes?: string | null | undefined;
39
- bankDetails?: {
40
- method: "bkash" | "bank_transfer" | "nagad" | "upay" | "rocket";
41
- accountNumber?: string | null | undefined;
42
- accountName?: string | null | undefined;
43
- } | null | undefined;
73
+ updatedAt?: NativeDate | null | undefined;
44
74
  } & mongoose.DefaultTimestampProps>, {}, mongoose.ResolveSchemaOptions<{
45
75
  timestamps: true;
46
76
  }>> & mongoose.FlatRecord<{
77
+ rejectionReason: string;
78
+ status: "pending" | "approved" | "completed" | "failed" | "processing" | "on_hold";
79
+ adminNotes: string;
80
+ currency: string;
81
+ paymentProcessingFee: number;
82
+ platformFee: number;
83
+ hostId: mongoose.Types.ObjectId;
84
+ eventId: mongoose.Types.ObjectId;
85
+ paymentMethod: "bkash" | "bank_transfer" | "mobile_banking";
86
+ refundAmount: number;
87
+ failedAt: NativeDate;
88
+ payoutNumber: string;
89
+ grossRevenue: number;
90
+ netPayout: number;
91
+ totalOrders: number;
92
+ confirmedOrders: number;
93
+ refundedOrders: number;
94
+ totalTicketsSold: number;
95
+ approvedBy: mongoose.Types.ObjectId;
96
+ approvedAt: NativeDate;
97
+ rejectedBy: mongoose.Types.ObjectId;
98
+ rejectedAt: NativeDate;
99
+ accountNumber: string;
100
+ accountName: string;
101
+ initiatedAt: NativeDate;
102
+ completedAt: NativeDate;
103
+ transactionId: string;
104
+ hostNotes: string;
105
+ requiresReview: boolean;
106
+ reviewReason: string;
107
+ onHold: boolean;
108
+ holdReason: string;
47
109
  createdAt?: NativeDate | null | undefined;
48
- status?: string | null | undefined;
49
- amount?: number | null | undefined;
50
- platformFee?: number | null | undefined;
51
- hostId?: mongoose.Types.ObjectId | null | undefined;
52
- eventId?: mongoose.Types.ObjectId | null | undefined;
53
- paymentFee?: number | null | undefined;
54
- totalRevenue?: number | null | undefined;
55
- approvedBy?: mongoose.Types.ObjectId | null | undefined;
56
- approvedAt?: NativeDate | null | undefined;
57
- processedAt?: NativeDate | null | undefined;
58
- completedAt?: NativeDate | null | undefined;
59
- transactionId?: string | null | undefined;
60
- notes?: string | null | undefined;
61
- bankDetails?: {
62
- method: "bkash" | "bank_transfer" | "nagad" | "upay" | "rocket";
63
- accountNumber?: string | null | undefined;
64
- accountName?: string | null | undefined;
65
- } | null | undefined;
110
+ updatedAt?: NativeDate | null | undefined;
66
111
  } & mongoose.DefaultTimestampProps> & {
67
112
  _id: mongoose.Types.ObjectId;
68
113
  } & {
package/dist/Payout.js CHANGED
@@ -5,28 +5,147 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const mongoose_1 = __importDefault(require("mongoose"));
7
7
  const payoutSchema = new mongoose_1.default.Schema({
8
- hostId: mongoose_1.default.Schema.Types.ObjectId,
9
- eventId: mongoose_1.default.Schema.Types.ObjectId,
10
- amount: Number, // Host's share
11
- platformFee: Number, // Your cut
12
- paymentFee: Number, // bKash fee
13
- totalRevenue: Number, // Original amount
14
- status: String, // 'pending', 'approved', 'processing', 'completed', 'failed'
15
- bankDetails: {
16
- method: {
17
- type: String,
18
- enum: ['bkash', 'nagad', 'upay', 'rocket', 'bank_transfer'],
19
- default: 'bkash'
20
- },
21
- accountNumber: String,
22
- accountName: String
23
- },
24
- approvedBy: mongoose_1.default.Schema.Types.ObjectId, // Admin who approved
25
- approvedAt: Date,
26
- processedAt: Date,
27
- completedAt: Date,
28
- transactionId: String, // bKash transaction ID
29
- notes: String, // Admin notes
30
- createdAt: Date
8
+ payoutNumber: {
9
+ type: String,
10
+ required: true
11
+ }, // "PAYOUT-20260109-ABC123"
12
+ // Ownership
13
+ hostId: {
14
+ type: mongoose_1.default.Schema.Types.ObjectId,
15
+ required: true
16
+ },
17
+ eventId: {
18
+ type: mongoose_1.default.Schema.Types.ObjectId,
19
+ required: true
20
+ },
21
+ // Financial Breakdown
22
+ grossRevenue: {
23
+ type: Number,
24
+ required: true
25
+ }, // Total sales
26
+ platformFee: {
27
+ type: Number,
28
+ required: true
29
+ }, // Your 5%
30
+ paymentProcessingFee: {
31
+ type: Number,
32
+ required: true
33
+ }, // bKash/Stripe fees
34
+ refundAmount: {
35
+ type: Number,
36
+ required: true
37
+ }, // Total refunded
38
+ netPayout: {
39
+ type: Number,
40
+ required: true
41
+ }, // What host receives
42
+ currency: {
43
+ type: String,
44
+ required: true
45
+ }, // "BDT"
46
+ // Order Summary
47
+ totalOrders: {
48
+ type: Number,
49
+ required: true
50
+ },
51
+ confirmedOrders: {
52
+ type: Number,
53
+ required: true
54
+ },
55
+ refundedOrders: {
56
+ type: Number,
57
+ required: true
58
+ },
59
+ totalTicketsSold: {
60
+ type: Number,
61
+ required: true
62
+ },
63
+ // Status
64
+ status: {
65
+ type: String,
66
+ enum: ['pending', 'approved', 'processing', 'completed', 'failed', 'on_hold'],
67
+ default: 'pending'
68
+ }, // "pending" | "approved" | "processing" | "completed" | "failed" | "on_hold"
69
+ // Admin Actions
70
+ approvedBy: {
71
+ type: mongoose_1.default.Schema.Types.ObjectId,
72
+ required: true
73
+ }, // Admin who approved
74
+ approvedAt: {
75
+ type: Date,
76
+ required: true
77
+ },
78
+ rejectedBy: {
79
+ type: mongoose_1.default.Schema.Types.ObjectId,
80
+ required: true
81
+ },
82
+ rejectedAt: {
83
+ type: Date,
84
+ required: true
85
+ },
86
+ rejectionReason: {
87
+ type: String,
88
+ required: true
89
+ },
90
+ // Payment Details
91
+ paymentMethod: {
92
+ type: String,
93
+ enum: ['bkash', 'bank_transfer', 'mobile_banking'],
94
+ default: 'bkash'
95
+ }, // "bkash" | "bank_transfer" | "mobile_banking"
96
+ accountNumber: {
97
+ type: String,
98
+ required: true
99
+ }, // Host's bKash number
100
+ accountName: {
101
+ type: String,
102
+ required: true
103
+ }, // Host's name
104
+ // Processing
105
+ initiatedAt: {
106
+ type: Date,
107
+ required: true
108
+ }, // When payout started
109
+ completedAt: {
110
+ type: Date,
111
+ required: true
112
+ }, // When money sent
113
+ failedAt: {
114
+ type: Date,
115
+ required: true
116
+ },
117
+ transactionId: {
118
+ type: String,
119
+ required: true
120
+ }, // bKash transaction ID
121
+ // Notes
122
+ adminNotes: {
123
+ type: String,
124
+ required: true
125
+ }, // Internal notes
126
+ hostNotes: {
127
+ type: String,
128
+ required: true
129
+ }, // Host can add context
130
+ // Audit
131
+ createdAt: Date,
132
+ updatedAt: Date,
133
+ // Flags
134
+ requiresReview: {
135
+ type: Boolean,
136
+ default: false
137
+ }, // Suspicious activity
138
+ reviewReason: {
139
+ type: String,
140
+ required: true
141
+ }, // Why flagged
142
+ onHold: {
143
+ type: Boolean,
144
+ default: false
145
+ }, // Admin hold
146
+ holdReason: {
147
+ type: String,
148
+ required: true
149
+ }
31
150
  }, { timestamps: true });
32
151
  exports.default = payoutSchema;
package/dist/User.d.ts CHANGED
@@ -10,10 +10,6 @@ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any
10
10
  emailVerified: boolean;
11
11
  phoneVerified: boolean;
12
12
  nidVerified: boolean;
13
- payout?: {
14
- method: "bkash" | "bank_transfer" | "nagad" | "upay" | "rocket";
15
- accountNumber?: string | null | undefined;
16
- } | null | undefined;
17
13
  password?: string | null | undefined;
18
14
  organization?: string | null | undefined;
19
15
  emailVerificationToken?: string | null | undefined;
@@ -22,6 +18,17 @@ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any
22
18
  phoneVerificationToken?: string | null | undefined;
23
19
  phoneVerificationExpires?: NativeDate | null | undefined;
24
20
  nidNumber?: string | null | undefined;
21
+ paymentDetails?: {
22
+ method: "bkash" | "bank_transfer";
23
+ verified: boolean;
24
+ accountNumber?: string | null | undefined;
25
+ accountName?: string | null | undefined;
26
+ bkashNumber?: string | null | undefined;
27
+ bankName?: string | null | undefined;
28
+ branchName?: string | null | undefined;
29
+ routingNumber?: string | null | undefined;
30
+ verifiedAt?: NativeDate | null | undefined;
31
+ } | null | undefined;
25
32
  refreshToken?: string | null | undefined;
26
33
  googleId?: string | null | undefined;
27
34
  } & mongoose.DefaultTimestampProps, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
@@ -33,10 +40,6 @@ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any
33
40
  emailVerified: boolean;
34
41
  phoneVerified: boolean;
35
42
  nidVerified: boolean;
36
- payout?: {
37
- method: "bkash" | "bank_transfer" | "nagad" | "upay" | "rocket";
38
- accountNumber?: string | null | undefined;
39
- } | null | undefined;
40
43
  password?: string | null | undefined;
41
44
  organization?: string | null | undefined;
42
45
  emailVerificationToken?: string | null | undefined;
@@ -45,6 +48,17 @@ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any
45
48
  phoneVerificationToken?: string | null | undefined;
46
49
  phoneVerificationExpires?: NativeDate | null | undefined;
47
50
  nidNumber?: string | null | undefined;
51
+ paymentDetails?: {
52
+ method: "bkash" | "bank_transfer";
53
+ verified: boolean;
54
+ accountNumber?: string | null | undefined;
55
+ accountName?: string | null | undefined;
56
+ bkashNumber?: string | null | undefined;
57
+ bankName?: string | null | undefined;
58
+ branchName?: string | null | undefined;
59
+ routingNumber?: string | null | undefined;
60
+ verifiedAt?: NativeDate | null | undefined;
61
+ } | null | undefined;
48
62
  refreshToken?: string | null | undefined;
49
63
  googleId?: string | null | undefined;
50
64
  } & mongoose.DefaultTimestampProps>, {}, mongoose.ResolveSchemaOptions<{
@@ -58,10 +72,6 @@ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any
58
72
  emailVerified: boolean;
59
73
  phoneVerified: boolean;
60
74
  nidVerified: boolean;
61
- payout?: {
62
- method: "bkash" | "bank_transfer" | "nagad" | "upay" | "rocket";
63
- accountNumber?: string | null | undefined;
64
- } | null | undefined;
65
75
  password?: string | null | undefined;
66
76
  organization?: string | null | undefined;
67
77
  emailVerificationToken?: string | null | undefined;
@@ -70,6 +80,17 @@ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any
70
80
  phoneVerificationToken?: string | null | undefined;
71
81
  phoneVerificationExpires?: NativeDate | null | undefined;
72
82
  nidNumber?: string | null | undefined;
83
+ paymentDetails?: {
84
+ method: "bkash" | "bank_transfer";
85
+ verified: boolean;
86
+ accountNumber?: string | null | undefined;
87
+ accountName?: string | null | undefined;
88
+ bkashNumber?: string | null | undefined;
89
+ bankName?: string | null | undefined;
90
+ branchName?: string | null | undefined;
91
+ routingNumber?: string | null | undefined;
92
+ verifiedAt?: NativeDate | null | undefined;
93
+ } | null | undefined;
73
94
  refreshToken?: string | null | undefined;
74
95
  googleId?: string | null | undefined;
75
96
  } & mongoose.DefaultTimestampProps> & {
package/dist/User.js CHANGED
@@ -62,15 +62,44 @@ const userSchema = new mongoose_1.default.Schema({
62
62
  type: Boolean,
63
63
  default: false
64
64
  },
65
- payout: {
65
+ paymentDetails: {
66
+ method: {
67
+ type: String,
68
+ enum: ['bkash', 'bank_transfer'],
69
+ default: 'bkash'
70
+ }, // "bkash" | "bank_transfer"
71
+ bkashNumber: {
72
+ type: String,
73
+ required: false
74
+ }, // "+8801712345678"
75
+ accountName: {
76
+ type: String,
77
+ required: false
78
+ }, // Must match NID
79
+ // Bank details (if method = bank_transfer)
80
+ bankName: {
81
+ type: String,
82
+ required: false
83
+ },
66
84
  accountNumber: {
67
85
  type: String,
68
86
  required: false
69
87
  },
70
- method: {
88
+ branchName: {
71
89
  type: String,
72
- enum: ['bkash', 'nagad', 'upay', 'rocket', 'bank_transfer'],
73
- default: 'bkash'
90
+ required: false
91
+ },
92
+ routingNumber: {
93
+ type: String,
94
+ required: false
95
+ },
96
+ verified: {
97
+ type: Boolean,
98
+ default: false
99
+ }, // Admin verified
100
+ verifiedAt: {
101
+ type: Date,
102
+ required: false
74
103
  }
75
104
  },
76
105
  role: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mac777/project-pinecone-models",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
package/src/Payout.ts CHANGED
@@ -1,37 +1,158 @@
1
1
  import mongoose from 'mongoose';
2
2
 
3
3
  const payoutSchema = new mongoose.Schema({
4
- hostId: mongoose.Schema.Types.ObjectId,
5
- eventId: mongoose.Schema.Types.ObjectId,
4
+ payoutNumber: {
5
+ type: String,
6
+ required: true
7
+ }, // "PAYOUT-20260109-ABC123"
6
8
 
7
- amount: Number, // Host's share
8
- platformFee: Number, // Your cut
9
- paymentFee: Number, // bKash fee
10
- totalRevenue: Number, // Original amount
9
+ // Ownership
10
+ hostId: {
11
+ type: mongoose.Schema.Types.ObjectId,
12
+ required: true
13
+ },
14
+ eventId: {
15
+ type: mongoose.Schema.Types.ObjectId,
16
+ required: true
17
+ },
18
+
19
+ // Financial Breakdown
20
+ grossRevenue: {
21
+ type: Number,
22
+ required: true
23
+ }, // Total sales
24
+ platformFee: {
25
+ type: Number,
26
+ required: true
27
+ }, // Your 5%
28
+ paymentProcessingFee: {
29
+ type: Number,
30
+ required: true
31
+ }, // bKash/Stripe fees
32
+ refundAmount: {
33
+ type: Number,
34
+ required: true
35
+ }, // Total refunded
36
+ netPayout: {
37
+ type: Number,
38
+ required: true
39
+ }, // What host receives
40
+ currency: {
41
+ type: String,
42
+ required: true
43
+ }, // "BDT"
44
+
45
+ // Order Summary
46
+ totalOrders: {
47
+ type: Number,
48
+ required: true
49
+ },
50
+ confirmedOrders: {
51
+ type: Number,
52
+ required: true
53
+ },
54
+ refundedOrders: {
55
+ type: Number,
56
+ required: true
57
+ },
58
+ totalTicketsSold: {
59
+ type: Number,
60
+ required: true
61
+ },
11
62
 
12
- status: String, // 'pending', 'approved', 'processing', 'completed', 'failed'
63
+ // Status
64
+ status: {
65
+ type: String,
66
+ enum: ['pending', 'approved', 'processing', 'completed', 'failed', 'on_hold'],
67
+ default: 'pending'
68
+ }, // "pending" | "approved" | "processing" | "completed" | "failed" | "on_hold"
13
69
 
14
- bankDetails: {
15
- method: {
16
- type: String,
17
- enum: ['bkash', 'nagad', 'upay', 'rocket', 'bank_transfer'],
18
- default: 'bkash'
19
- },
20
- accountNumber: String,
21
- accountName: String
70
+ // Admin Actions
71
+ approvedBy: {
72
+ type: mongoose.Schema.Types.ObjectId,
73
+ required: true
74
+ }, // Admin who approved
75
+ approvedAt: {
76
+ type: Date,
77
+ required: true
78
+ },
79
+ rejectedBy: {
80
+ type: mongoose.Schema.Types.ObjectId,
81
+ required: true
82
+ },
83
+ rejectedAt: {
84
+ type: Date,
85
+ required: true
86
+ },
87
+ rejectionReason: {
88
+ type: String,
89
+ required: true
22
90
  },
23
91
 
24
- approvedBy: mongoose.Schema.Types.ObjectId, // Admin who approved
25
- approvedAt: Date,
92
+ // Payment Details
93
+ paymentMethod: {
94
+ type: String,
95
+ enum: ['bkash', 'bank_transfer', 'mobile_banking'],
96
+ default: 'bkash'
97
+ }, // "bkash" | "bank_transfer" | "mobile_banking"
98
+ accountNumber: {
99
+ type: String,
100
+ required: true
101
+ }, // Host's bKash number
102
+ accountName: {
103
+ type: String,
104
+ required: true
105
+ }, // Host's name
26
106
 
27
- processedAt: Date,
28
- completedAt: Date,
107
+ // Processing
108
+ initiatedAt: {
109
+ type: Date,
110
+ required: true
111
+ }, // When payout started
112
+ completedAt: {
113
+ type: Date,
114
+ required: true
115
+ }, // When money sent
116
+ failedAt: {
117
+ type: Date,
118
+ required: true
119
+ },
120
+ transactionId: {
121
+ type: String,
122
+ required: true
123
+ }, // bKash transaction ID
29
124
 
30
- transactionId: String, // bKash transaction ID
125
+ // Notes
126
+ adminNotes: {
127
+ type: String,
128
+ required: true
129
+ }, // Internal notes
130
+ hostNotes: {
131
+ type: String,
132
+ required: true
133
+ }, // Host can add context
31
134
 
32
- notes: String, // Admin notes
135
+ // Audit
136
+ createdAt: Date,
137
+ updatedAt: Date,
33
138
 
34
- createdAt: Date
139
+ // Flags
140
+ requiresReview: {
141
+ type: Boolean,
142
+ default: false
143
+ }, // Suspicious activity
144
+ reviewReason: {
145
+ type: String,
146
+ required: true
147
+ }, // Why flagged
148
+ onHold: {
149
+ type: Boolean,
150
+ default: false
151
+ }, // Admin hold
152
+ holdReason: {
153
+ type: String,
154
+ required: true
155
+ }
35
156
  }, { timestamps: true });
36
157
 
37
158
  export default payoutSchema;
package/src/User.ts CHANGED
@@ -58,15 +58,46 @@ const userSchema = new mongoose.Schema({
58
58
  type: Boolean,
59
59
  default: false
60
60
  },
61
- payout: {
61
+ paymentDetails: {
62
+ method: {
63
+ type: String,
64
+ enum: ['bkash', 'bank_transfer'],
65
+ default: 'bkash'
66
+ }, // "bkash" | "bank_transfer"
67
+ bkashNumber: {
68
+ type: String,
69
+ required: false
70
+ }, // "+8801712345678"
71
+ accountName: {
72
+ type: String,
73
+ required: false
74
+ }, // Must match NID
75
+
76
+ // Bank details (if method = bank_transfer)
77
+ bankName: {
78
+ type: String,
79
+ required: false
80
+ },
62
81
  accountNumber: {
63
82
  type: String,
64
83
  required: false
65
84
  },
66
- method: {
85
+ branchName: {
67
86
  type: String,
68
- enum: ['bkash', 'nagad', 'upay', 'rocket', 'bank_transfer'],
69
- default: 'bkash'
87
+ required: false
88
+ },
89
+ routingNumber: {
90
+ type: String,
91
+ required: false
92
+ },
93
+
94
+ verified: {
95
+ type: Boolean,
96
+ default: false
97
+ }, // Admin verified
98
+ verifiedAt: {
99
+ type: Date,
100
+ required: false
70
101
  }
71
102
  },
72
103
  role: {