@mac777/project-pinecone-models 1.1.11 → 1.1.13

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.
@@ -0,0 +1,178 @@
1
+ import mongoose from "mongoose";
2
+ declare const orderSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
3
+ timestamps: true;
4
+ strict: true;
5
+ }, {
6
+ userId: mongoose.Types.ObjectId;
7
+ status: "pending" | "cancelled" | "confirmed" | "refunded";
8
+ pricing: {
9
+ currency: string;
10
+ platformFee: number;
11
+ subtotal: number;
12
+ paymentFee: number;
13
+ total: number;
14
+ hostPayout: number;
15
+ };
16
+ tickets: mongoose.Types.DocumentArray<{
17
+ quantity: number;
18
+ ticketVariantId: mongoose.Types.ObjectId;
19
+ variantName: string;
20
+ pricePerTicket: number;
21
+ subtotal: number;
22
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, any, {
23
+ quantity: number;
24
+ ticketVariantId: mongoose.Types.ObjectId;
25
+ variantName: string;
26
+ pricePerTicket: number;
27
+ subtotal: number;
28
+ }> & {
29
+ quantity: number;
30
+ ticketVariantId: mongoose.Types.ObjectId;
31
+ variantName: string;
32
+ pricePerTicket: number;
33
+ subtotal: number;
34
+ }>;
35
+ eventId: mongoose.Types.ObjectId;
36
+ expiresAt: NativeDate;
37
+ requiresManualReview: boolean;
38
+ paymentMethod: "card" | "bkash" | "bank_transfer" | "free";
39
+ paymentStatus: "pending" | "succeeded" | "failed";
40
+ ticketIds: mongoose.Types.ObjectId[];
41
+ buyerEmail: string;
42
+ ticketCount: number;
43
+ paidAt?: NativeDate | null | undefined;
44
+ refundedAt?: NativeDate | null | undefined;
45
+ confirmedAt?: NativeDate | null | undefined;
46
+ cancelledAt?: NativeDate | null | undefined;
47
+ reminderSentAt?: NativeDate | null | undefined;
48
+ buyerPhone?: string | null | undefined;
49
+ ipAddress?: string | null | undefined;
50
+ userAgent?: string | null | undefined;
51
+ refund?: {
52
+ reason: "event_cancelled" | "user_request" | "fraud";
53
+ amount: number;
54
+ refundedAt: NativeDate;
55
+ stripeRefundId?: string | null | undefined;
56
+ } | null | undefined;
57
+ orderNumber?: string | null | undefined;
58
+ paymentId?: string | null | undefined;
59
+ manualReviewReason?: string | null | undefined;
60
+ } & mongoose.DefaultTimestampProps, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
61
+ userId: mongoose.Types.ObjectId;
62
+ status: "pending" | "cancelled" | "confirmed" | "refunded";
63
+ pricing: {
64
+ currency: string;
65
+ platformFee: number;
66
+ subtotal: number;
67
+ paymentFee: number;
68
+ total: number;
69
+ hostPayout: number;
70
+ };
71
+ tickets: mongoose.Types.DocumentArray<{
72
+ quantity: number;
73
+ ticketVariantId: mongoose.Types.ObjectId;
74
+ variantName: string;
75
+ pricePerTicket: number;
76
+ subtotal: number;
77
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, any, {
78
+ quantity: number;
79
+ ticketVariantId: mongoose.Types.ObjectId;
80
+ variantName: string;
81
+ pricePerTicket: number;
82
+ subtotal: number;
83
+ }> & {
84
+ quantity: number;
85
+ ticketVariantId: mongoose.Types.ObjectId;
86
+ variantName: string;
87
+ pricePerTicket: number;
88
+ subtotal: number;
89
+ }>;
90
+ eventId: mongoose.Types.ObjectId;
91
+ expiresAt: NativeDate;
92
+ requiresManualReview: boolean;
93
+ paymentMethod: "card" | "bkash" | "bank_transfer" | "free";
94
+ paymentStatus: "pending" | "succeeded" | "failed";
95
+ ticketIds: mongoose.Types.ObjectId[];
96
+ buyerEmail: string;
97
+ ticketCount: number;
98
+ paidAt?: NativeDate | null | undefined;
99
+ refundedAt?: NativeDate | null | undefined;
100
+ confirmedAt?: NativeDate | null | undefined;
101
+ cancelledAt?: NativeDate | null | undefined;
102
+ reminderSentAt?: NativeDate | null | undefined;
103
+ buyerPhone?: string | null | undefined;
104
+ ipAddress?: string | null | undefined;
105
+ userAgent?: string | null | undefined;
106
+ refund?: {
107
+ reason: "event_cancelled" | "user_request" | "fraud";
108
+ amount: number;
109
+ refundedAt: NativeDate;
110
+ stripeRefundId?: string | null | undefined;
111
+ } | null | undefined;
112
+ orderNumber?: string | null | undefined;
113
+ paymentId?: string | null | undefined;
114
+ manualReviewReason?: string | null | undefined;
115
+ } & mongoose.DefaultTimestampProps>, {}, mongoose.ResolveSchemaOptions<{
116
+ timestamps: true;
117
+ strict: true;
118
+ }>> & mongoose.FlatRecord<{
119
+ userId: mongoose.Types.ObjectId;
120
+ status: "pending" | "cancelled" | "confirmed" | "refunded";
121
+ pricing: {
122
+ currency: string;
123
+ platformFee: number;
124
+ subtotal: number;
125
+ paymentFee: number;
126
+ total: number;
127
+ hostPayout: number;
128
+ };
129
+ tickets: mongoose.Types.DocumentArray<{
130
+ quantity: number;
131
+ ticketVariantId: mongoose.Types.ObjectId;
132
+ variantName: string;
133
+ pricePerTicket: number;
134
+ subtotal: number;
135
+ }, mongoose.Types.Subdocument<mongoose.mongo.BSON.ObjectId, any, {
136
+ quantity: number;
137
+ ticketVariantId: mongoose.Types.ObjectId;
138
+ variantName: string;
139
+ pricePerTicket: number;
140
+ subtotal: number;
141
+ }> & {
142
+ quantity: number;
143
+ ticketVariantId: mongoose.Types.ObjectId;
144
+ variantName: string;
145
+ pricePerTicket: number;
146
+ subtotal: number;
147
+ }>;
148
+ eventId: mongoose.Types.ObjectId;
149
+ expiresAt: NativeDate;
150
+ requiresManualReview: boolean;
151
+ paymentMethod: "card" | "bkash" | "bank_transfer" | "free";
152
+ paymentStatus: "pending" | "succeeded" | "failed";
153
+ ticketIds: mongoose.Types.ObjectId[];
154
+ buyerEmail: string;
155
+ ticketCount: number;
156
+ paidAt?: NativeDate | null | undefined;
157
+ refundedAt?: NativeDate | null | undefined;
158
+ confirmedAt?: NativeDate | null | undefined;
159
+ cancelledAt?: NativeDate | null | undefined;
160
+ reminderSentAt?: NativeDate | null | undefined;
161
+ buyerPhone?: string | null | undefined;
162
+ ipAddress?: string | null | undefined;
163
+ userAgent?: string | null | undefined;
164
+ refund?: {
165
+ reason: "event_cancelled" | "user_request" | "fraud";
166
+ amount: number;
167
+ refundedAt: NativeDate;
168
+ stripeRefundId?: string | null | undefined;
169
+ } | null | undefined;
170
+ orderNumber?: string | null | undefined;
171
+ paymentId?: string | null | undefined;
172
+ manualReviewReason?: string | null | undefined;
173
+ } & mongoose.DefaultTimestampProps> & {
174
+ _id: mongoose.Types.ObjectId;
175
+ } & {
176
+ __v: number;
177
+ }>;
178
+ export default orderSchema;
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mongoose_1 = __importDefault(require("mongoose"));
7
+ /* ----------------------------------
8
+ * Embedded Schemas
9
+ * ---------------------------------- */
10
+ const orderTicketSchema = new mongoose_1.default.Schema({
11
+ ticketVariantId: {
12
+ type: mongoose_1.default.Schema.Types.ObjectId,
13
+ required: true,
14
+ ref: "TicketVariant"
15
+ },
16
+ variantName: {
17
+ type: String,
18
+ required: true,
19
+ trim: true
20
+ },
21
+ quantity: {
22
+ type: Number,
23
+ required: true,
24
+ min: 1
25
+ },
26
+ pricePerTicket: {
27
+ type: Number,
28
+ required: true,
29
+ min: 0
30
+ },
31
+ subtotal: {
32
+ type: Number,
33
+ required: true,
34
+ min: 0
35
+ }
36
+ }, { _id: false });
37
+ const pricingSchema = new mongoose_1.default.Schema({
38
+ subtotal: { type: Number, required: true, min: 0 },
39
+ platformFee: { type: Number, required: true, min: 0 },
40
+ paymentFee: { type: Number, required: true, min: 0 },
41
+ total: { type: Number, required: true, min: 0 },
42
+ currency: { type: String, default: "BDT" },
43
+ hostPayout: { type: Number, required: true, min: 0 }
44
+ }, { _id: false });
45
+ const refundSchema = new mongoose_1.default.Schema({
46
+ reason: {
47
+ type: String,
48
+ enum: ["event_cancelled", "user_request", "fraud"],
49
+ required: true
50
+ },
51
+ amount: {
52
+ type: Number,
53
+ required: true,
54
+ min: 0
55
+ },
56
+ refundedAt: {
57
+ type: Date,
58
+ default: Date.now
59
+ },
60
+ stripeRefundId: String
61
+ }, { _id: false });
62
+ /* ----------------------------------
63
+ * Main Order Schema
64
+ * ---------------------------------- */
65
+ const orderSchema = new mongoose_1.default.Schema({
66
+ /* ---------- Identity ---------- */
67
+ orderNumber: {
68
+ type: String,
69
+ unique: true,
70
+ index: true
71
+ },
72
+ userId: {
73
+ type: mongoose_1.default.Schema.Types.ObjectId,
74
+ ref: "User",
75
+ required: true,
76
+ index: true
77
+ },
78
+ eventId: {
79
+ type: mongoose_1.default.Schema.Types.ObjectId,
80
+ ref: "Event",
81
+ required: true,
82
+ index: true
83
+ },
84
+ /* ---------- Tickets ---------- */
85
+ tickets: {
86
+ type: [orderTicketSchema],
87
+ validate: (v) => v.length > 0
88
+ },
89
+ ticketCount: {
90
+ type: Number,
91
+ required: true,
92
+ min: 1
93
+ },
94
+ ticketIds: [{
95
+ type: mongoose_1.default.Schema.Types.ObjectId,
96
+ ref: "Ticket"
97
+ }],
98
+ /* ---------- Pricing ---------- */
99
+ pricing: {
100
+ type: pricingSchema,
101
+ required: true
102
+ },
103
+ /* ---------- Payment ---------- */
104
+ paymentId: String,
105
+ paymentMethod: {
106
+ type: String,
107
+ enum: ["card", "bkash", "bank_transfer", "free"],
108
+ required: true
109
+ },
110
+ paymentStatus: {
111
+ type: String,
112
+ enum: ["pending", "succeeded", "failed"],
113
+ default: "pending",
114
+ index: true
115
+ },
116
+ paidAt: Date,
117
+ /* ---------- Order Lifecycle ---------- */
118
+ status: {
119
+ type: String,
120
+ enum: ["pending", "confirmed", "cancelled", "refunded"],
121
+ default: "pending",
122
+ index: true
123
+ },
124
+ requiresManualReview: {
125
+ type: Boolean,
126
+ default: false
127
+ },
128
+ manualReviewReason: String,
129
+ confirmedAt: Date,
130
+ cancelledAt: Date,
131
+ refundedAt: Date,
132
+ expiresAt: {
133
+ type: Date,
134
+ required: true,
135
+ index: true
136
+ },
137
+ reminderSentAt: Date,
138
+ /* ---------- Buyer ---------- */
139
+ buyerEmail: {
140
+ type: String,
141
+ required: true,
142
+ lowercase: true,
143
+ trim: true,
144
+ index: true
145
+ },
146
+ buyerPhone: String,
147
+ /* ---------- Refund ---------- */
148
+ refund: {
149
+ type: refundSchema,
150
+ validate: {
151
+ validator(refund) {
152
+ return !refund || refund.amount <= this.pricing.total;
153
+ },
154
+ message: "Refund amount exceeds order total"
155
+ }
156
+ },
157
+ /* ---------- Audit ---------- */
158
+ ipAddress: String,
159
+ userAgent: String
160
+ }, {
161
+ timestamps: true,
162
+ strict: true
163
+ });
164
+ /* ----------------------------------
165
+ * Indexes
166
+ * ---------------------------------- */
167
+ orderSchema.index({ status: 1, createdAt: -1 });
168
+ orderSchema.index({ eventId: 1, status: 1, createdAt: -1 });
169
+ orderSchema.index({ paymentStatus: 1, createdAt: -1 });
170
+ orderSchema.index({ expiresAt: 1 }, {
171
+ expireAfterSeconds: 0,
172
+ partialFilterExpression: { status: "pending" }
173
+ });
174
+ /* ----------------------------------
175
+ * Hooks
176
+ * ---------------------------------- */
177
+ // Generate order number
178
+ orderSchema.pre("save", function (next) {
179
+ if (this.isNew && !this.orderNumber) {
180
+ const ts = Date.now().toString().slice(-6);
181
+ const rand = Math.random().toString(36).substring(2, 8).toUpperCase();
182
+ this.orderNumber = `ORD-${ts}-${rand}`;
183
+ }
184
+ next();
185
+ });
186
+ // Compute ticket count
187
+ orderSchema.pre("validate", function (next) {
188
+ if (this.tickets?.length) {
189
+ this.ticketCount = this.tickets.reduce((sum, t) => sum + t.quantity, 0);
190
+ }
191
+ next();
192
+ });
193
+ // Pricing immutability after confirmation
194
+ orderSchema.pre("save", function (next) {
195
+ if (!this.isNew && this.isModified("pricing") && this.status !== "pending") {
196
+ return next(new Error("Pricing cannot be modified after confirmation"));
197
+ }
198
+ next();
199
+ });
200
+ /* ----------------------------------
201
+ * Export
202
+ * ---------------------------------- */
203
+ exports.default = orderSchema;
package/dist/Payment.d.ts CHANGED
@@ -2,7 +2,7 @@ import mongoose from 'mongoose';
2
2
  declare const paymentSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
3
3
  userId: mongoose.Types.ObjectId;
4
4
  createdAt: NativeDate;
5
- status: "pending" | "succeeded" | "failed" | "refunded";
5
+ status: "pending" | "refunded" | "succeeded" | "failed";
6
6
  amount: number;
7
7
  currency: string;
8
8
  paymentId: string;
@@ -20,7 +20,7 @@ declare const paymentSchema: mongoose.Schema<any, mongoose.Model<any, any, any,
20
20
  }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
21
21
  userId: mongoose.Types.ObjectId;
22
22
  createdAt: NativeDate;
23
- status: "pending" | "succeeded" | "failed" | "refunded";
23
+ status: "pending" | "refunded" | "succeeded" | "failed";
24
24
  amount: number;
25
25
  currency: string;
26
26
  paymentId: string;
@@ -38,7 +38,7 @@ declare const paymentSchema: mongoose.Schema<any, mongoose.Model<any, any, any,
38
38
  }>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<{
39
39
  userId: mongoose.Types.ObjectId;
40
40
  createdAt: NativeDate;
41
- status: "pending" | "succeeded" | "failed" | "refunded";
41
+ status: "pending" | "refunded" | "succeeded" | "failed";
42
42
  amount: number;
43
43
  currency: string;
44
44
  paymentId: string;
package/dist/Payment.js CHANGED
@@ -7,8 +7,8 @@ const mongoose_1 = __importDefault(require("mongoose"));
7
7
  // Payment schema for transaction logging
8
8
  const paymentSchema = new mongoose_1.default.Schema({
9
9
  // LINKS
10
- orderId: { type: mongoose_1.default.Schema.Types.ObjectId, required: true, index: true }, // Which order
11
- userId: { type: mongoose_1.default.Schema.Types.ObjectId, required: true, index: true }, // Who paid
10
+ orderId: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'Order', required: true, index: true }, // Which order
11
+ userId: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'User', required: true, index: true }, // Who paid
12
12
  paymentId: { type: String, required: true, unique: true, index: true }, // Stripe PI (unique)
13
13
  // MONEY
14
14
  amount: { type: Number, required: true },
package/dist/Payout.js CHANGED
@@ -12,10 +12,12 @@ const payoutSchema = new mongoose_1.default.Schema({
12
12
  // Ownership
13
13
  hostId: {
14
14
  type: mongoose_1.default.Schema.Types.ObjectId,
15
+ ref: 'User',
15
16
  required: true
16
17
  },
17
18
  eventId: {
18
19
  type: mongoose_1.default.Schema.Types.ObjectId,
20
+ ref: 'Event',
19
21
  required: true
20
22
  },
21
23
  // Financial Breakdown
@@ -60,12 +62,14 @@ const payoutSchema = new mongoose_1.default.Schema({
60
62
  // Admin Actions
61
63
  approvedBy: {
62
64
  type: mongoose_1.default.Schema.Types.ObjectId,
65
+ ref: 'User',
63
66
  }, // Admin who approved
64
67
  approvedAt: {
65
68
  type: Date,
66
69
  },
67
70
  rejectedBy: {
68
71
  type: mongoose_1.default.Schema.Types.ObjectId,
72
+ ref: 'User',
69
73
  },
70
74
  rejectedAt: {
71
75
  type: Date,
package/dist/Ticket.d.ts CHANGED
@@ -18,9 +18,9 @@ declare const ticketSchema: mongoose.Schema<any, mongoose.Model<any, any, any, a
18
18
  validUntil: NativeDate;
19
19
  secretHash: string;
20
20
  checkedInAt?: NativeDate | null | undefined;
21
+ transferredAt?: NativeDate | null | undefined;
21
22
  checkedInBy?: mongoose.Types.ObjectId | null | undefined;
22
23
  transferredTo?: mongoose.Types.ObjectId | null | undefined;
23
- transferredAt?: NativeDate | null | undefined;
24
24
  }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
25
25
  userId: mongoose.Types.ObjectId;
26
26
  status: "cancelled" | "refunded" | "valid" | "used" | "transferred";
@@ -40,9 +40,9 @@ declare const ticketSchema: mongoose.Schema<any, mongoose.Model<any, any, any, a
40
40
  validUntil: NativeDate;
41
41
  secretHash: string;
42
42
  checkedInAt?: NativeDate | null | undefined;
43
+ transferredAt?: NativeDate | null | undefined;
43
44
  checkedInBy?: mongoose.Types.ObjectId | null | undefined;
44
45
  transferredTo?: mongoose.Types.ObjectId | null | undefined;
45
- transferredAt?: NativeDate | null | undefined;
46
46
  }>, {}, mongoose.ResolveSchemaOptions<mongoose.DefaultSchemaOptions>> & mongoose.FlatRecord<{
47
47
  userId: mongoose.Types.ObjectId;
48
48
  status: "cancelled" | "refunded" | "valid" | "used" | "transferred";
@@ -62,9 +62,9 @@ declare const ticketSchema: mongoose.Schema<any, mongoose.Model<any, any, any, a
62
62
  validUntil: NativeDate;
63
63
  secretHash: string;
64
64
  checkedInAt?: NativeDate | null | undefined;
65
+ transferredAt?: NativeDate | null | undefined;
65
66
  checkedInBy?: mongoose.Types.ObjectId | null | undefined;
66
67
  transferredTo?: mongoose.Types.ObjectId | null | undefined;
67
- transferredAt?: NativeDate | null | undefined;
68
68
  }> & {
69
69
  _id: mongoose.Types.ObjectId;
70
70
  } & {
package/dist/Ticket.js CHANGED
@@ -8,9 +8,9 @@ const mongoose_1 = __importDefault(require("mongoose"));
8
8
  const ticketSchema = new mongoose_1.default.Schema({
9
9
  ticketNumber: { type: String, required: true, unique: true, index: true }, // Human-readable: "TKT-EVT123-A3K9-01"
10
10
  // BELONGS TO
11
- orderId: { type: mongoose_1.default.Schema.Types.ObjectId, required: true, index: true }, // Parent order
12
- eventId: { type: mongoose_1.default.Schema.Types.ObjectId, required: true, index: true }, // Which event
13
- userId: { type: mongoose_1.default.Schema.Types.ObjectId, required: true, index: true }, // Owner
11
+ orderId: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'Order', required: true, index: true }, // Parent order
12
+ eventId: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'Event', required: true, index: true }, // Which event
13
+ userId: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'User', required: true, index: true }, // Owner
14
14
  ticketVariantId: { type: mongoose_1.default.Schema.Types.ObjectId, required: true }, // Which type (VIP, GA, etc)
15
15
  // DETAILS (denormalized for speed)
16
16
  eventTitle: { type: String, required: true },
@@ -37,9 +37,9 @@ const ticketSchema = new mongoose_1.default.Schema({
37
37
  default: 'not_checked_in'
38
38
  },
39
39
  checkedInAt: Date,
40
- checkedInBy: mongoose_1.default.Schema.Types.ObjectId, // Staff/scanner user ID
40
+ checkedInBy: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'User' }, // Staff/scanner user ID
41
41
  // TRANSFER (if user transfers ticket to friend)
42
- transferredTo: mongoose_1.default.Schema.Types.ObjectId, // New owner user ID
42
+ transferredTo: { type: mongoose_1.default.Schema.Types.ObjectId, ref: 'User' }, // New owner user ID
43
43
  transferredAt: Date,
44
44
  // LIFECYCLE
45
45
  issuedAt: { type: Date, default: Date.now }, // When ticket was created
@@ -0,0 +1,172 @@
1
+ import mongoose from "mongoose";
2
+ declare const userSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
3
+ timestamps: true;
4
+ strict: true;
5
+ }, {
6
+ role: "user" | "host" | "admin";
7
+ status: "deleted" | "active" | "suspended";
8
+ payout?: {
9
+ method: "bkash" | "bank_transfer";
10
+ verified: boolean;
11
+ bkash?: {
12
+ number?: string | null | undefined;
13
+ } | null | undefined;
14
+ verifiedAt?: NativeDate | null | undefined;
15
+ bank?: {
16
+ accountNumber?: string | null | undefined;
17
+ accountName?: string | null | undefined;
18
+ bankName?: string | null | undefined;
19
+ branchName?: string | null | undefined;
20
+ routingNumber?: string | null | undefined;
21
+ } | null | undefined;
22
+ } | null | undefined;
23
+ profile?: {
24
+ firstName: string;
25
+ lastName: string;
26
+ organization?: string | null | undefined;
27
+ avatar?: {
28
+ url?: string | null | undefined;
29
+ publicId?: string | null | undefined;
30
+ } | null | undefined;
31
+ } | null | undefined;
32
+ contact?: {
33
+ email: string;
34
+ emailVerified: boolean;
35
+ phoneVerified: boolean;
36
+ phone?: string | null | undefined;
37
+ emailVerification?: {
38
+ expiresAt?: NativeDate | null | undefined;
39
+ token?: string | null | undefined;
40
+ } | null | undefined;
41
+ phoneVerification?: {
42
+ expiresAt?: NativeDate | null | undefined;
43
+ token?: string | null | undefined;
44
+ } | null | undefined;
45
+ } | null | undefined;
46
+ identity?: {
47
+ nidVerified: boolean;
48
+ nidNumber?: string | null | undefined;
49
+ verifiedAt?: NativeDate | null | undefined;
50
+ } | null | undefined;
51
+ auth?: {
52
+ provider: "google" | "local";
53
+ password?: string | null | undefined;
54
+ refreshToken?: string | null | undefined;
55
+ googleId?: string | null | undefined;
56
+ } | null | undefined;
57
+ lastLoginAt?: NativeDate | null | undefined;
58
+ } & mongoose.DefaultTimestampProps, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
59
+ role: "user" | "host" | "admin";
60
+ status: "deleted" | "active" | "suspended";
61
+ payout?: {
62
+ method: "bkash" | "bank_transfer";
63
+ verified: boolean;
64
+ bkash?: {
65
+ number?: string | null | undefined;
66
+ } | null | undefined;
67
+ verifiedAt?: NativeDate | null | undefined;
68
+ bank?: {
69
+ accountNumber?: string | null | undefined;
70
+ accountName?: string | null | undefined;
71
+ bankName?: string | null | undefined;
72
+ branchName?: string | null | undefined;
73
+ routingNumber?: string | null | undefined;
74
+ } | null | undefined;
75
+ } | null | undefined;
76
+ profile?: {
77
+ firstName: string;
78
+ lastName: string;
79
+ organization?: string | null | undefined;
80
+ avatar?: {
81
+ url?: string | null | undefined;
82
+ publicId?: string | null | undefined;
83
+ } | null | undefined;
84
+ } | null | undefined;
85
+ contact?: {
86
+ email: string;
87
+ emailVerified: boolean;
88
+ phoneVerified: boolean;
89
+ phone?: string | null | undefined;
90
+ emailVerification?: {
91
+ expiresAt?: NativeDate | null | undefined;
92
+ token?: string | null | undefined;
93
+ } | null | undefined;
94
+ phoneVerification?: {
95
+ expiresAt?: NativeDate | null | undefined;
96
+ token?: string | null | undefined;
97
+ } | null | undefined;
98
+ } | null | undefined;
99
+ identity?: {
100
+ nidVerified: boolean;
101
+ nidNumber?: string | null | undefined;
102
+ verifiedAt?: NativeDate | null | undefined;
103
+ } | null | undefined;
104
+ auth?: {
105
+ provider: "google" | "local";
106
+ password?: string | null | undefined;
107
+ refreshToken?: string | null | undefined;
108
+ googleId?: string | null | undefined;
109
+ } | null | undefined;
110
+ lastLoginAt?: NativeDate | null | undefined;
111
+ } & mongoose.DefaultTimestampProps>, {}, mongoose.ResolveSchemaOptions<{
112
+ timestamps: true;
113
+ strict: true;
114
+ }>> & mongoose.FlatRecord<{
115
+ role: "user" | "host" | "admin";
116
+ status: "deleted" | "active" | "suspended";
117
+ payout?: {
118
+ method: "bkash" | "bank_transfer";
119
+ verified: boolean;
120
+ bkash?: {
121
+ number?: string | null | undefined;
122
+ } | null | undefined;
123
+ verifiedAt?: NativeDate | null | undefined;
124
+ bank?: {
125
+ accountNumber?: string | null | undefined;
126
+ accountName?: string | null | undefined;
127
+ bankName?: string | null | undefined;
128
+ branchName?: string | null | undefined;
129
+ routingNumber?: string | null | undefined;
130
+ } | null | undefined;
131
+ } | null | undefined;
132
+ profile?: {
133
+ firstName: string;
134
+ lastName: string;
135
+ organization?: string | null | undefined;
136
+ avatar?: {
137
+ url?: string | null | undefined;
138
+ publicId?: string | null | undefined;
139
+ } | null | undefined;
140
+ } | null | undefined;
141
+ contact?: {
142
+ email: string;
143
+ emailVerified: boolean;
144
+ phoneVerified: boolean;
145
+ phone?: string | null | undefined;
146
+ emailVerification?: {
147
+ expiresAt?: NativeDate | null | undefined;
148
+ token?: string | null | undefined;
149
+ } | null | undefined;
150
+ phoneVerification?: {
151
+ expiresAt?: NativeDate | null | undefined;
152
+ token?: string | null | undefined;
153
+ } | null | undefined;
154
+ } | null | undefined;
155
+ identity?: {
156
+ nidVerified: boolean;
157
+ nidNumber?: string | null | undefined;
158
+ verifiedAt?: NativeDate | null | undefined;
159
+ } | null | undefined;
160
+ auth?: {
161
+ provider: "google" | "local";
162
+ password?: string | null | undefined;
163
+ refreshToken?: string | null | undefined;
164
+ googleId?: string | null | undefined;
165
+ } | null | undefined;
166
+ lastLoginAt?: NativeDate | null | undefined;
167
+ } & mongoose.DefaultTimestampProps> & {
168
+ _id: mongoose.Types.ObjectId;
169
+ } & {
170
+ __v: number;
171
+ }>;
172
+ export default userSchema;