Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const mongoose = require('mongoose');
- const Schema = mongoose.Schema;
- const bcrypt = require('bcrypt');
- const config = require('../config');
- const userSchema = new Schema({
- nombre: {type: String},
- edad: {type: Number, min: 2001},
- ciudad: {type: String},
- zona: {type: String},
- telefono_gestion: {type: Number},
- telefono_publico: {type: Number},
- email_gestion: {type: String, unique: true, lowercase: true},
- email_publico: {type: String, unique: true, lowercase: true},
- web: {type: String},
- constraseña: {type: String},
- terminos_y_condiciones: {type: Date},
- boletin_informativo: {type: Boolean},
- about_me: {
- genero: {type: String, enum: ['masculino', 'femenino', 'transexual', 'otros'], lowercase: true},
- color_pelo: {type: String, enum: ['morena', 'castaña', 'rubia', 'pelirroja'], lowercase: true},
- color_ojos: {type: String, enum: ['azules', 'marrones', 'negros', 'verdes'], lowercase: true},
- color_piel: {type: String, enum: ['blanca', 'mulata', 'negra'], lowercase: true},
- pubis: {type: String, enum: ['calvo', 'depilado', 'peludo'], lowercase: true},
- nacionalidad: {type: String, enum: [
- 'Andorra',
- 'Emiratos Árabes Unidos',
- 'Afganistán',
- 'Antigua y Barbuda',
- 'Anguila',
- 'Albania',
- 'Armenia',
- 'Angola',
- 'Antártida',
- 'Argentina',
- 'Samoa Americana',
- 'Austria',
- 'Australia',
- 'Aruba',
- 'Azerbaiyán',
- 'Bosnia-Herzegovina',
- 'Barbados',
- 'Bangladés',
- 'Bélgica',
- 'Burkina Faso',
- 'Bulgaria',
- 'Bahréin',
- 'Burundi',
- 'Benín',
- 'San Bartolomé',
- 'Bermudas',
- 'Brunei',
- 'Bolivia',
- 'Brasil',
- 'Las Bahamas',
- 'Bután',
- 'Isla Bouvet',
- 'Botsuana',
- 'Bielorrusia',
- 'Belice',
- 'Canadá',
- 'Islas Cocos (Keeling)',
- 'Congo, República Democrática del',
- 'República Centroafricana',
- 'Congo, República del',
- 'Suiza',
- 'Costa de Marfil',
- 'Islas Cook',
- 'Chile',
- 'Camerún',
- 'China',
- 'Colombia',
- 'Costa Rica',
- 'Cuba',
- 'Cabo Verde',
- 'Curacao',
- 'Isla de Navidad',
- 'Chipre',
- 'República Checa',
- 'Alemania',
- 'Yibuti',
- 'Dinamarca',
- 'Dominica',
- 'República Dominicana',
- 'Argelia',
- 'Ecuador',
- 'Estonia',
- 'Egipto',
- 'Sahara Occidental',
- 'Eritrea',
- 'España',
- 'Etiopía',
- 'Finlandia',
- 'Fiyi',
- 'Islas Malvinas (Falkland)',
- 'Micronesia, Estados Federados de',
- 'Islas Feroe',
- 'Francia',
- 'Francia, metropolitana',
- 'Gabón',
- 'Reino Unido',
- 'Granada',
- 'Georgia',
- 'Guayana Francesa',
- 'Guernsey',
- 'Ghana',
- 'Gibraltar',
- 'Groenlandia',
- 'Gambia',
- 'Guinea',
- 'Guadalupe',
- 'Guinea Ecuatorial',
- 'Grecia',
- 'Islas Georgia del Sur y Sándwich del Sur',
- 'Guatemala',
- 'Guam',
- 'Guinea-Bissau',
- 'Guyana',
- 'Hong Kong',
- 'Islas Heard y McDonald',
- 'Honduras',
- 'Croacia',
- 'Haití',
- 'Hungría',
- 'Indonesia',
- 'Irlanda',
- 'Israel',
- 'Isla de Man',
- 'India',
- 'Territorio británico del océano Índico',
- 'Iraq',
- 'Irán',
- 'Islandia',
- 'Italia',
- 'Jersey',
- 'Jamaica',
- 'Jordania',
- 'Japón',
- 'Kenia',
- 'Kirguistán',
- 'Camboya',
- 'Kiribati',
- 'Comoras',
- 'San Cristóbal y Nieves',
- 'Corea del Norte',
- 'Corea del Sur',
- 'Kuwait',
- 'Islas Caimán',
- 'Kazajistán',
- 'Laos',
- 'Líbano',
- 'Santa Lucía',
- 'Liechtenstein',
- 'Sri Lanka',
- 'Liberia',
- 'Lesoto',
- 'Lituania',
- 'Luxemburgo',
- 'Letonia',
- 'Libia',
- 'Marruecos',
- 'Mónaco',
- 'Moldovia',
- 'Montenegro',
- 'Saint Martin',
- 'Madagascar',
- 'Islas Marshall',
- 'Macedonia',
- 'Mali',
- 'Burma',
- 'Mongolia',
- 'Macao',
- 'Islas Marianas del Norte',
- 'Martinica',
- 'Mauritania',
- 'Montserrat',
- 'Malta',
- 'Mauricio',
- 'Maldivas',
- 'Malaui',
- 'México',
- 'Malasia',
- 'Mozambique',
- 'Namibia',
- 'Nueva Caledonia',
- 'Níger',
- 'Isla Norfolk',
- 'Nigeria',
- 'Nicaragua',
- 'Países Bajos',
- 'Noruega',
- 'Nepal',
- 'Nauru',
- 'Niue',
- 'Nueva Zelanda',
- 'Omán',
- 'Panamá',
- 'Perú',
- 'Polinesia Francesa',
- 'Papúa Nueva Guinea',
- 'Filipinas',
- 'Pakistán',
- 'Polonia',
- 'San Pedro y Miguelón',
- 'Islas Pitcairn',
- 'Puerto Rico',
- 'Franja de Gaza',
- 'Cisjordania',
- 'Portugal',
- 'Palaos',
- 'Paraguay',
- 'Qatar',
- 'Reunion',
- 'Rumania',
- 'Serbia',
- 'Rusia',
- 'Ruanda',
- 'Arabia Saudita',
- 'Islas Salomón',
- 'Seychelles',
- 'Sudán',
- 'Suecia',
- 'Singapur',
- 'Santa Helena, Ascensión y Tristán de Acuña',
- 'Eslovenia',
- 'Svalbard',
- 'Eslovaquia',
- 'Sierra Leona',
- 'San Marino',
- 'Senegal',
- 'Somalia',
- 'Surinam',
- 'Sudán Sur',
- 'Santo Tomé y Príncipe',
- 'El Salvador',
- 'Sint Maarten',
- 'Siria',
- 'Suazilandia',
- 'Islas Turcas y Caicos',
- 'Chad',
- 'Territorios Australes Franceses',
- 'Togo',
- 'Tailandia',
- 'Tayikistán',
- 'Tokelau',
- 'Timor Leste',
- 'Turkmenistán',
- 'Túnez',
- 'Tonga',
- 'Turquía',
- 'Trinidad y Tobago',
- 'Tuvalu',
- 'Taiwán',
- 'Tanzania',
- 'Ucrania',
- 'Uganda',
- 'Islas Ultramarinas menores de Estados Unidos',
- 'Estados Unidos',
- 'Uruguay',
- 'Uzbekistán',
- 'Santa Sede (Estado de la Ciudad del Vaticano)',
- 'San Vicente y las Granadinas',
- 'Venezuela',
- 'Islas Vírgenes Británicas',
- 'Islas Vírgenes de los EE. UU.',
- 'Vietnam',
- 'Vanuatu',
- 'Islas Wallis y Futuna',
- 'Samoa',
- 'Kosovo',
- 'Yemen',
- 'Mayotte',
- 'Sudáfrica',
- 'Zambia',
- 'Zimbabwe',
- ]},
- actriz_porno: {type: Boolean},
- ingles: {type: String, enum: ['basico', 'medio', 'alto', 'nativo'], lowercase: true},
- universitaria: {type: Boolean},
- fumador: {type: Boolean},
- cuerpo: {type: String, enum: ['culona', 'tetona', 'delgadita', 'gordita']},
- altura: {type: Number, min: 150},
- pechos: {type: String, enum: ['basico', 'medio', 'alto', 'nativo'], lowercase: true},
- pechos_naturales: {type: Boolean},
- cintura: {type: Number},
- caderas: {type: Number},
- peso: {type: Number, min: 45},
- descripcion: {type: String}
- },
- tarifas: {
- type: Object,
- tarjeta_credito: {type: Boolean},
- servicios: [
- {
- servicio: {type: String},
- precio: {type: Number}
- }
- ]
- },
- disponibilidad: {
- type: Object,
- horario: [
- {
- dia: 'lunes',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- {
- dia: 'martes',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- {
- dia: 'miercoles',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- {
- dia: 'jueves',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- {
- dia: 'viernes',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- {
- dia: 'sabado',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- {
- dia: 'domingo',
- hora_inicio: {type: Number},
- hora_fin: {type: Number},
- todo_el_dia: {type: Boolean}
- },
- ],
- domicilio: {type: Boolean},
- cena_romantica: {type: Boolean},
- viajes: {type: Boolean},
- habitacion_por_horas: {type: Boolean},
- clubs_de_intercambio: {type: Boolean},
- atiendo_el_telefono: {type: Boolean},
- hotel: {type: Boolean},
- despedida_de_soltero: {type: Boolean},
- apartamento_escort: {type: Boolean},
- eventos_y_fiestas: {type: Boolean},
- },
- servicios: {
- type: Object,
- atencion_a_mujeres: {type: Boolean},
- beso_en_boca: {type: Boolean},
- eyaculacion_femenina: {type: Boolean},
- frances_completo: {type: Boolean},
- griego: {type: Boolean},
- lluvia_dorada: {type: Boolean},
- posicion_69: {type: Boolean},
- trato_de_novia: {type: Boolean},
- atencion_a_parejas: {type: Boolean},
- doble_penetracion: {type: Boolean},
- facial: {type: Boolean},
- frances_con_condon: {type: Boolean},
- juguetes_eroticos: {type: Boolean},
- lesbico_real: {type: Boolean},
- sado: {type: Boolean},
- trios: {type: Boolean},
- beso_blanco: {type: Boolean},
- ducha_erotica: {type: Boolean},
- fantasia_y_disfraces: {type: Boolean},
- frances_natural: {type: Boolean},
- kamasutra: {type: Boolean},
- masajes_eroticos: {type: Boolean},
- strap_on: {type: Boolean},
- beso_negro: {type: Boolean},
- duplex: {type: Boolean},
- fetichismo: {type: Boolean},
- garganta_profunda: {type: Boolean},
- lenceria: {type: Boolean},
- orgias: {type: Boolean},
- striptease: {type: Boolean},
- },
- fotos: Array[String],
- rol: {type: String, enum: ['agency', 'particular', 'user']},
- resetPasswordToken: {type: String},
- resetPasswordExpires: {type: Date}
- }, {
- timestamps: {
- createdAt: 'created_at',
- updatedAt: 'updated_at'
- }
- });
- userSchema.pre('save', function (next) {
- const user = this;
- if (!user.isModified('password')) return next();
- bcrypt.genSalt(config.SALT_FACTOR, function (err, salt) {
- if (err) return next(err);
- bcrypt.hash(user.password, salt).then(function(hash) {
- if (err) return next(err);
- user.password = hash;
- next();
- });
- });
- });
- const User = mongoose.model('User', userSchema);
- module.exports = User;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement