У меня есть этот код, и я хочу преобразовать свойство name в уникальное свойство модели, когда роль - «КОМПАНИЯ», но я не могу найти способ доступа к значению роли, чтобы проверить условие.
import mongoose, { Schema } from 'mongoose';
import uniqueValidator from 'mongoose-unique-validator';
import { IUser } from '../interfaces/user';
const validRoles = {
values: ['HUMAN', 'COMPANY', 'RRHH'],
message: '{VALUE} is not a valid role'
}
const UserSchema: Schema = new Schema({
role: { type: String, required: [true, 'Role is required'], enum: validRoles },
name: {
type: String,
required: [true, 'Name is required'],
unique: this.role === 'COMPANY' ? true : false,
},
email: { type: String, required: [true, 'Email is required'], unique: true, uniqueCaseInsensitive: true },
password: { type: String, required: [true, 'Password is required'] }
});
UserSchema.plugin( uniqueValidator, {message: '{PATH} must be unique'});
export default mongoose.model<IUser>('User', UserSchema);
Есть идеи?
Спасибо!