Added expert field mirror flow

This commit is contained in:
SepehrYahyaee
2026-06-15 11:24:41 +03:30
committed by Sepehr Yahyaee
parent 79905345e5
commit 19dc2a76f2
39 changed files with 2310 additions and 182 deletions

View File

@@ -0,0 +1,3 @@
export { OtpSchema, Otp, OtpDocument } from "./otp.schema";
export { ProfileSchema, Profile, ProfileDocument } from "./profile.schema";
export { UserSchema, User, UserDocument } from "./user.schema";

View File

@@ -0,0 +1,24 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { HydratedDocument } from "mongoose";
export type OtpDocument = HydratedDocument<Otp>;
@Schema({ _id: false })
export class Otp {
@Prop()
hash: string;
@Prop()
salt: string;
@Prop()
expiresAt: Date;
@Prop({ default: 0 })
attempts: number;
@Prop({ default: Date.now })
generatedAt: Date;
}
export const OtpSchema = SchemaFactory.createForClass(Otp);

View File

@@ -0,0 +1,18 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { HydratedDocument } from "mongoose";
export type ProfileDocument = HydratedDocument<Profile>;
@Schema({ _id: false })
export class Profile {
@Prop()
firstName?: string;
@Prop()
lastName?: string;
@Prop()
birthDate?: Date;
}
export const ProfileSchema = SchemaFactory.createForClass(Profile);

View File

@@ -0,0 +1,22 @@
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose";
import { HydratedDocument, Types } from "mongoose";
import { Otp, OtpSchema, Profile, ProfileSchema } from "./index";
export type UserDocument = HydratedDocument<User>;
@Schema({
id: true,
timestamps: true,
})
export class User {
@Prop({ required: true, unique: true, index: true })
cellphoneNumber: string;
@Prop({ type: OtpSchema })
otp?: Otp;
@Prop({ type: ProfileSchema })
profile?: Profile;
}
export const UserSchema = SchemaFactory.createForClass(User);