feat: add professor import support, user account creation, and IBAN/card fields

This commit is contained in:
2026-08-21 12:56:15 +03:30
parent 22b57eeae2
commit 7c74950c95
8 changed files with 344 additions and 9 deletions
+12
View File
@@ -32,6 +32,18 @@ const professorSchema = new mongoose.Schema({
trim: true,
lowercase: true
},
cardNumber: {
type: String,
trim: true
},
shabaNumber: {
type: String,
trim: true
},
bio: {
type: String,
trim: true
},
expertise: [{
type: String,
trim: true
+15 -1
View File
@@ -13,7 +13,10 @@ const createProfessor = async (data) => {
surname: String(data.surname || '').trim(),
nationalIdCode: String(data.nationalIdCode || data.nationalId || '').trim(),
phoneNumber: String(data.phoneNumber || data.phone || '').trim(),
email: data.email ? String(data.email).trim().toLowerCase() : undefined
email: data.email ? String(data.email).trim().toLowerCase() : undefined,
cardNumber: data.cardNumber ? String(data.cardNumber).trim() : undefined,
shabaNumber: data.shabaNumber || data.iban ? String(data.shabaNumber || data.iban).trim() : undefined,
bio: data.bio ? String(data.bio).trim() : undefined
};
const existing = await Professor.findOne({
@@ -73,6 +76,17 @@ const updateProfessor = async (id, updateData) => {
if (payload.email !== undefined) {
payload.email = payload.email ? String(payload.email).trim().toLowerCase() : undefined;
}
if (payload.cardNumber !== undefined) {
payload.cardNumber = payload.cardNumber ? String(payload.cardNumber).trim() : undefined;
}
if (payload.shabaNumber !== undefined || payload.iban !== undefined) {
const val = payload.shabaNumber || payload.iban;
payload.shabaNumber = val ? String(val).trim() : undefined;
delete payload.iban;
}
if (payload.bio !== undefined) {
payload.bio = payload.bio ? String(payload.bio).trim() : undefined;
}
Object.assign(professor, payload);
await professor.save();