File size: 636 Bytes
814d5ba |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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);
|