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);