import mongoose from "mongoose"; const shippingAddressSchema = new mongoose.Schema( { firstName: { type: String, }, lastName: { type: String, }, phoneNumber: { type: Number, }, street: { type: String, required: true, }, city: { type: String, required: true, trim: true, }, state: { type: String, required: true, }, postalCode: { type: String, required: true, trim: true, match: /^\d{6}$/, }, country: { type: String, required: true, }, panNumber: { type: String, required: true, }, tradeName: { type: String, }, gstNumber: { type: String, validate: { validator: function (v) { // Check if gstNumber is provided before applying validation if (v && v.trim().length > 0) { return /^(\d{2}[A-Z]{5}\d{4}[A-Z]{1}\d[Z]{1}[A-Z\d]{1})$/.test(v); } // If gstNumber is not provided, it's considered valid return true; }, message: (props) => `${props.value} is not a valid GST number!`, }, }, isDefault: { type: Boolean, default: false, }, user: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true, }, }, { timestamps: true, versionKey: false } ); const ShippingAddress = mongoose.model("ShippingAddress", shippingAddressSchema); export default ShippingAddress;