هذا الالتزام موجود في:
2026-04-20 15:12:16 +03:00
التزام 28f7241bcd
172 ملفات معدلة مع 21907 إضافات و0 حذوفات

عرض الملف

@@ -0,0 +1,31 @@
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { HydratedDocument, Types } from 'mongoose';
import { User } from '../../users/schemas/user.schema';
export type PasswordResetCodeDocument = HydratedDocument<PasswordResetCode>;
@Schema({ timestamps: true, versionKey: false })
export class PasswordResetCode {
@Prop({ type: Types.ObjectId, ref: User.name, required: true, index: true })
userId!: Types.ObjectId;
@Prop({ required: true, select: false })
codeHash!: string;
@Prop({ required: true, index: true })
expiresAt!: Date;
@Prop({ default: 0, min: 0 })
attempts!: number;
@Prop({ default: false, index: true })
verified!: boolean;
@Prop({ default: false, index: true })
used!: boolean;
}
export const PasswordResetCodeSchema = SchemaFactory.createForClass(PasswordResetCode);
PasswordResetCodeSchema.index({ userId: 1, used: 1, expiresAt: -1 });
PasswordResetCodeSchema.index({ expiresAt: 1 }, { expireAfterSeconds: 0 });