| import mongoose from "mongoose"; | |
| const RefreshTokenSchema = new mongoose.Schema({ | |
| hash: String, | |
| ip: String, | |
| userAgent: String, | |
| createdAt: { type: Date, default: Date.now }, | |
| }); | |
| const UserSchema = new mongoose.Schema( | |
| { | |
| email: { type: String, unique: true, index: true }, | |
| passwordHash: String, | |
| role: { type: String, enum: ["user", "admin"], default: "user" }, | |
| refreshTokens: [RefreshTokenSchema], | |
| deletedAt: { type: Date, default: null }, | |
| }, | |
| { timestamps: true } | |
| ); | |
| UserSchema.pre(/^find/, function () { | |
| this.where({ deletedAt: null }); | |
| }); | |
| export const User = mongoose.model("User", UserSchema); | |