Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 78x 78x 78x 78x | import { Schema, model } from "mongoose";
import { ArrayOfObjectIds, Email, Password, PersonName, RequiredNumber, RequiredString } from "../utilities/schemaTypesOptions.js";
export const LocationSchema = new Schema({
theName: PersonName(),
phone: RequiredString(),
country: RequiredString(),
city: RequiredString(),
street: RequiredString(),
moreDetails: { type: String, maxLength: 400 },
id: RequiredString(),
_id: false
});
export const PaymentMethodSchema = new Schema({
theName: PersonName(),
number: RequiredNumber(),
expired: RequiredString(),
_id: false
});
const UserSchema = new Schema(
{
userName: PersonName(),
userEmail: Email(),
userPassword: Password(),
avatar: String,
userShoppingCart: {
type: [String],
default: []
},
userAddress: {
selectedLocation: LocationSchema,
locationsList: {
type: [LocationSchema],
default: []
},
},
userPaymentMethodes: {
cardsList: {
type: [PaymentMethodSchema],
default: []
},
choosedMethod: PaymentMethodSchema,
},
userFavorites: ArrayOfObjectIds(),
userOrders: ArrayOfObjectIds(),
hisEmailVerified: {
type: Boolean,
default: false
},
lastPasswordChange: {
type: Date,
default: null
},
signingMethod: {
type: String,
default: "Email & Password"
}
},
{ timestamps: true, versionKey: false }
);
const UsersModel = model("users", UserSchema);
export default UsersModel; |