initial commit
This commit is contained in:
19
backend/models/cita.js
Normal file
19
backend/models/cita.js
Normal file
@@ -0,0 +1,19 @@
|
||||
'use strict'
|
||||
const mongoose = require('mongoose');
|
||||
const CitaSchema = mongoose.Schema({
|
||||
rut: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// La especialista viene de la disponibilidad, es redundante aquí.
|
||||
/*especialista: {
|
||||
type: mongoose.Schema.ObjectId, ref: "especialista",
|
||||
required: true
|
||||
},*/
|
||||
disponibilidad: {
|
||||
type: mongoose.Schema.ObjectId, ref: "disponibilidad",
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('cita', CitaSchema);
|
23
backend/models/disponibilidad.js
Normal file
23
backend/models/disponibilidad.js
Normal file
@@ -0,0 +1,23 @@
|
||||
'use strict'
|
||||
const mongoose = require('mongoose');
|
||||
const DisponibilidadSchema = mongoose.Schema({
|
||||
especialista: {
|
||||
type: mongoose.Schema.ObjectId, ref: "especialista",
|
||||
required: true
|
||||
},
|
||||
fecha: {
|
||||
type: Date,
|
||||
required: true
|
||||
},
|
||||
horario: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
disponible: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('disponibilidad', DisponibilidadSchema);
|
10
backend/models/especialidad.js
Normal file
10
backend/models/especialidad.js
Normal file
@@ -0,0 +1,10 @@
|
||||
'use strict'
|
||||
const mongoose = require('mongoose');
|
||||
const EspecialidadSchema = mongoose.Schema({
|
||||
descripcion: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('especialidad', EspecialidadSchema);
|
14
backend/models/especialista.js
Normal file
14
backend/models/especialista.js
Normal file
@@ -0,0 +1,14 @@
|
||||
'use strict'
|
||||
const mongoose = require('mongoose');
|
||||
const EspecialistaSchema = mongoose.Schema({
|
||||
nombre: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
especialidad: {
|
||||
type: mongoose.Schema.ObjectId, ref: "especialidad",
|
||||
required: true
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('especialista', EspecialistaSchema);
|
46
backend/models/usuario.js
Normal file
46
backend/models/usuario.js
Normal file
@@ -0,0 +1,46 @@
|
||||
'use strict'
|
||||
const bcrypt = require('bcrypt-nodejs');
|
||||
const mongoose = require('mongoose');
|
||||
const UsuarioSchema = mongoose.Schema({
|
||||
nombre: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
mail: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
pass: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
activo: {
|
||||
type: Boolean
|
||||
}
|
||||
});
|
||||
|
||||
UsuarioSchema.pre('save', function(next) {
|
||||
const usuario = this;
|
||||
if (!usuario.isModified('pass')) {
|
||||
return next();
|
||||
}
|
||||
|
||||
if (!usuario.hasOwnProperty('activo')) {
|
||||
usuario.activo = true;
|
||||
}
|
||||
|
||||
bcrypt.genSalt(10, (err, salt) => {
|
||||
if (err) {
|
||||
next(err);
|
||||
}
|
||||
bcrypt.hash(usuario.pass, salt, null, (err, hash) => {
|
||||
if (err) {
|
||||
next(err);
|
||||
}
|
||||
usuario.pass = hash;
|
||||
next();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('usuario', UsuarioSchema);
|
Reference in New Issue
Block a user