Advertisement
Guest User

Untitled

a guest
Feb 16th, 2019
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const mongoose = require('mongoose');
  2. const Schema   = mongoose.Schema;
  3. const bcrypt = require('bcrypt');
  4. const config = require('../config');
  5.  
  6. const userSchema = new Schema({
  7.  
  8.   nombre: {type: String},
  9.   edad: {type: Number, min: 2001},
  10.   ciudad: {type: String},
  11.   zona: {type: String},
  12.   telefono_gestion: {type: Number},
  13.   telefono_publico: {type: Number},
  14.   email_gestion: {type: String, unique: true, lowercase: true},
  15.   email_publico: {type: String, unique: true, lowercase: true},
  16.   web: {type: String},
  17.   constraseña: {type: String},
  18.   terminos_y_condiciones: {type: Date},
  19.   boletin_informativo: {type: Boolean},
  20.  
  21.   about_me: {
  22.     genero: {type: String, enum: ['masculino', 'femenino', 'transexual', 'otros'], lowercase: true},
  23.     color_pelo: {type: String, enum: ['morena', 'castaña', 'rubia', 'pelirroja'], lowercase: true},
  24.     color_ojos: {type: String, enum: ['azules', 'marrones', 'negros', 'verdes'], lowercase: true},
  25.     color_piel: {type: String, enum: ['blanca', 'mulata', 'negra'], lowercase: true},
  26.     pubis: {type: String, enum: ['calvo', 'depilado', 'peludo'], lowercase: true},
  27.     nacionalidad: {type: String, enum: [
  28.       'Andorra',
  29.       'Emiratos Árabes Unidos',
  30.       'Afganistán',
  31.       'Antigua y Barbuda',
  32.       'Anguila',
  33.       'Albania',
  34.       'Armenia',
  35.       'Angola',
  36.       'Antártida',
  37.       'Argentina',
  38.       'Samoa Americana',
  39.       'Austria',
  40.       'Australia',
  41.       'Aruba',
  42.       'Azerbaiyán',
  43.       'Bosnia-Herzegovina',
  44.       'Barbados',
  45.       'Bangladés',
  46.       'Bélgica',
  47.       'Burkina Faso',
  48.       'Bulgaria',
  49.       'Bahréin',
  50.       'Burundi',
  51.       'Benín',
  52.       'San Bartolomé',
  53.       'Bermudas',
  54.       'Brunei',
  55.       'Bolivia',
  56.       'Brasil',
  57.       'Las Bahamas',
  58.       'Bután',
  59.       'Isla Bouvet',
  60.       'Botsuana',
  61.       'Bielorrusia',
  62.       'Belice',
  63.       'Canadá',
  64.       'Islas Cocos (Keeling)',
  65.       'Congo, República Democrática del',
  66.       'República Centroafricana',
  67.       'Congo, República del',
  68.       'Suiza',
  69.       'Costa de Marfil',
  70.       'Islas Cook',
  71.       'Chile',
  72.       'Camerún',
  73.       'China',
  74.       'Colombia',
  75.       'Costa Rica',
  76.       'Cuba',
  77.       'Cabo Verde',
  78.       'Curacao',
  79.       'Isla de Navidad',
  80.       'Chipre',
  81.       'República Checa',
  82.       'Alemania',
  83.       'Yibuti',
  84.       'Dinamarca',
  85.       'Dominica',
  86.       'República Dominicana',
  87.       'Argelia',
  88.       'Ecuador',
  89.       'Estonia',
  90.       'Egipto',
  91.       'Sahara Occidental',
  92.       'Eritrea',
  93.       'España',
  94.       'Etiopía',
  95.       'Finlandia',
  96.       'Fiyi',
  97.       'Islas Malvinas (Falkland)',
  98.       'Micronesia, Estados Federados de',
  99.       'Islas Feroe',
  100.       'Francia',
  101.       'Francia, metropolitana',
  102.       'Gabón',
  103.       'Reino Unido',
  104.       'Granada',
  105.       'Georgia',
  106.       'Guayana Francesa',
  107.       'Guernsey',
  108.       'Ghana',
  109.       'Gibraltar',
  110.       'Groenlandia',
  111.       'Gambia',
  112.       'Guinea',
  113.       'Guadalupe',
  114.       'Guinea Ecuatorial',
  115.       'Grecia',
  116.       'Islas Georgia del Sur y Sándwich del Sur',
  117.       'Guatemala',
  118.       'Guam',
  119.       'Guinea-Bissau',
  120.       'Guyana',
  121.       'Hong Kong',
  122.       'Islas Heard y McDonald',
  123.       'Honduras',
  124.       'Croacia',
  125.       'Haití',
  126.       'Hungría',
  127.       'Indonesia',
  128.       'Irlanda',
  129.       'Israel',
  130.       'Isla de Man',
  131.       'India',
  132.       'Territorio británico del océano Índico',
  133.       'Iraq',
  134.       'Irán',
  135.       'Islandia',
  136.       'Italia',
  137.       'Jersey',
  138.       'Jamaica',
  139.       'Jordania',
  140.       'Japón',
  141.       'Kenia',
  142.       'Kirguistán',
  143.       'Camboya',
  144.       'Kiribati',
  145.       'Comoras',
  146.       'San Cristóbal y Nieves',
  147.       'Corea del Norte',
  148.       'Corea del Sur',
  149.       'Kuwait',
  150.       'Islas Caimán',
  151.       'Kazajistán',
  152.       'Laos',
  153.       'Líbano',
  154.       'Santa Lucía',
  155.       'Liechtenstein',
  156.       'Sri Lanka',
  157.       'Liberia',
  158.       'Lesoto',
  159.       'Lituania',
  160.       'Luxemburgo',
  161.       'Letonia',
  162.       'Libia',
  163.       'Marruecos',
  164.       'Mónaco',
  165.       'Moldovia',
  166.       'Montenegro',
  167.       'Saint Martin',
  168.       'Madagascar',
  169.       'Islas Marshall',
  170.       'Macedonia',
  171.       'Mali',
  172.       'Burma',
  173.       'Mongolia',
  174.       'Macao',
  175.       'Islas Marianas del Norte',
  176.       'Martinica',
  177.       'Mauritania',
  178.       'Montserrat',
  179.       'Malta',
  180.       'Mauricio',
  181.       'Maldivas',
  182.       'Malaui',
  183.       'México',
  184.       'Malasia',
  185.       'Mozambique',
  186.       'Namibia',
  187.       'Nueva Caledonia',
  188.       'Níger',
  189.       'Isla Norfolk',
  190.       'Nigeria',
  191.       'Nicaragua',
  192.       'Países Bajos',
  193.       'Noruega',
  194.       'Nepal',
  195.       'Nauru',
  196.       'Niue',
  197.       'Nueva Zelanda',
  198.       'Omán',
  199.       'Panamá',
  200.       'Perú',
  201.       'Polinesia Francesa',
  202.       'Papúa Nueva Guinea',
  203.       'Filipinas',
  204.       'Pakistán',
  205.       'Polonia',
  206.       'San Pedro y Miguelón',
  207.       'Islas Pitcairn',
  208.       'Puerto Rico',
  209.       'Franja de Gaza',
  210.       'Cisjordania',
  211.       'Portugal',
  212.       'Palaos',
  213.       'Paraguay',
  214.       'Qatar',
  215.       'Reunion',
  216.       'Rumania',
  217.       'Serbia',
  218.       'Rusia',
  219.       'Ruanda',
  220.       'Arabia Saudita',
  221.       'Islas Salomón',
  222.       'Seychelles',
  223.       'Sudán',
  224.       'Suecia',
  225.       'Singapur',
  226.       'Santa Helena, Ascensión y Tristán de Acuña',
  227.       'Eslovenia',
  228.       'Svalbard',
  229.       'Eslovaquia',
  230.       'Sierra Leona',
  231.       'San Marino',
  232.       'Senegal',
  233.       'Somalia',
  234.       'Surinam',
  235.       'Sudán Sur',
  236.       'Santo Tomé y Príncipe',
  237.       'El Salvador',
  238.       'Sint Maarten',
  239.       'Siria',
  240.       'Suazilandia',
  241.       'Islas Turcas y Caicos',
  242.       'Chad',
  243.       'Territorios Australes Franceses',
  244.       'Togo',
  245.       'Tailandia',
  246.       'Tayikistán',
  247.       'Tokelau',
  248.       'Timor Leste',
  249.       'Turkmenistán',
  250.       'Túnez',
  251.       'Tonga',
  252.       'Turquía',
  253.       'Trinidad y Tobago',
  254.       'Tuvalu',
  255.       'Taiwán',
  256.       'Tanzania',
  257.       'Ucrania',
  258.       'Uganda',
  259.       'Islas Ultramarinas menores de Estados Unidos',
  260.       'Estados Unidos',
  261.       'Uruguay',
  262.       'Uzbekistán',
  263.       'Santa Sede (Estado de la Ciudad del Vaticano)',
  264.       'San Vicente y las Granadinas',
  265.       'Venezuela',
  266.       'Islas Vírgenes Británicas',
  267.       'Islas Vírgenes de los EE. UU.',
  268.       'Vietnam',
  269.       'Vanuatu',
  270.       'Islas Wallis y Futuna',
  271.       'Samoa',
  272.       'Kosovo',
  273.       'Yemen',
  274.       'Mayotte',
  275.       'Sudáfrica',
  276.       'Zambia',
  277.       'Zimbabwe',
  278.     ]},
  279.     actriz_porno: {type: Boolean},
  280.     ingles: {type: String, enum: ['basico', 'medio', 'alto', 'nativo'], lowercase: true},
  281.     universitaria: {type: Boolean},
  282.     fumador: {type: Boolean},
  283.     cuerpo: {type: String, enum: ['culona', 'tetona', 'delgadita', 'gordita']},
  284.     altura: {type: Number, min: 150},
  285.     pechos: {type: String, enum: ['basico', 'medio', 'alto', 'nativo'], lowercase: true},
  286.     pechos_naturales: {type: Boolean},
  287.     cintura: {type: Number},
  288.     caderas: {type: Number},
  289.     peso: {type: Number, min: 45},
  290.     descripcion: {type: String}
  291.   },
  292.  
  293.   tarifas: {
  294.     type: Object,
  295.     tarjeta_credito: {type: Boolean},
  296.     servicios: [
  297.       {
  298.         servicio: {type: String},
  299.         precio: {type: Number}
  300.       }
  301.     ]
  302.   },
  303.  
  304.   disponibilidad: {
  305.     type: Object,
  306.     horario: [
  307.       {
  308.         dia: 'lunes',
  309.         hora_inicio: {type: Number},
  310.         hora_fin: {type: Number},
  311.         todo_el_dia: {type: Boolean}
  312.       },
  313.       {
  314.         dia: 'martes',
  315.         hora_inicio: {type: Number},
  316.         hora_fin: {type: Number},
  317.         todo_el_dia: {type: Boolean}
  318.       },
  319.       {
  320.         dia: 'miercoles',
  321.         hora_inicio: {type: Number},
  322.         hora_fin: {type: Number},
  323.         todo_el_dia: {type: Boolean}
  324.       },
  325.       {
  326.         dia: 'jueves',
  327.         hora_inicio: {type: Number},
  328.         hora_fin: {type: Number},
  329.         todo_el_dia: {type: Boolean}
  330.       },
  331.       {
  332.         dia: 'viernes',
  333.         hora_inicio: {type: Number},
  334.         hora_fin: {type: Number},
  335.         todo_el_dia: {type: Boolean}
  336.       },
  337.       {
  338.         dia: 'sabado',
  339.         hora_inicio: {type: Number},
  340.         hora_fin: {type: Number},
  341.         todo_el_dia: {type: Boolean}
  342.       },
  343.       {
  344.         dia: 'domingo',
  345.         hora_inicio: {type: Number},
  346.         hora_fin: {type: Number},
  347.         todo_el_dia: {type: Boolean}
  348.       },
  349.     ],
  350.     domicilio: {type: Boolean},
  351.     cena_romantica: {type: Boolean},
  352.     viajes: {type: Boolean},
  353.     habitacion_por_horas: {type: Boolean},
  354.     clubs_de_intercambio: {type: Boolean},
  355.     atiendo_el_telefono: {type: Boolean},
  356.     hotel: {type: Boolean},
  357.     despedida_de_soltero: {type: Boolean},
  358.     apartamento_escort: {type: Boolean},
  359.     eventos_y_fiestas: {type: Boolean},
  360.   },
  361.  
  362.   servicios: {
  363.     type: Object,
  364.     atencion_a_mujeres: {type: Boolean},
  365.     beso_en_boca: {type: Boolean},
  366.     eyaculacion_femenina: {type: Boolean},
  367.     frances_completo: {type: Boolean},
  368.     griego: {type: Boolean},
  369.     lluvia_dorada: {type: Boolean},
  370.     posicion_69: {type: Boolean},
  371.     trato_de_novia: {type: Boolean},
  372.     atencion_a_parejas: {type: Boolean},
  373.     doble_penetracion: {type: Boolean},
  374.     facial: {type: Boolean},
  375.     frances_con_condon: {type: Boolean},
  376.     juguetes_eroticos: {type: Boolean},
  377.     lesbico_real: {type: Boolean},
  378.     sado: {type: Boolean},
  379.     trios: {type: Boolean},
  380.     beso_blanco: {type: Boolean},
  381.     ducha_erotica: {type: Boolean},
  382.     fantasia_y_disfraces: {type: Boolean},
  383.     frances_natural: {type: Boolean},
  384.     kamasutra: {type: Boolean},
  385.     masajes_eroticos: {type: Boolean},
  386.     strap_on: {type: Boolean},
  387.     beso_negro: {type: Boolean},
  388.     duplex: {type: Boolean},
  389.     fetichismo: {type: Boolean},
  390.     garganta_profunda: {type: Boolean},
  391.     lenceria: {type: Boolean},
  392.     orgias: {type: Boolean},
  393.     striptease: {type: Boolean},
  394.   },
  395.  
  396.   fotos: Array[String],
  397.  
  398.   rol: {type: String, enum: ['agency', 'particular', 'user']},
  399.  
  400.   resetPasswordToken: {type: String},
  401.   resetPasswordExpires: {type: Date}
  402. }, {
  403.   timestamps: {
  404.     createdAt: 'created_at',
  405.     updatedAt: 'updated_at'
  406.   }
  407. });
  408.  
  409. userSchema.pre('save', function (next) {
  410.   const user = this;
  411.   if (!user.isModified('password')) return next();
  412.   bcrypt.genSalt(config.SALT_FACTOR, function (err, salt) {
  413.     if (err) return next(err);
  414.     bcrypt.hash(user.password, salt).then(function(hash) {
  415.       if (err) return next(err);
  416.       user.password = hash;
  417.       next();
  418.     });
  419.   });
  420. });
  421.  
  422. const User = mongoose.model('User', userSchema);
  423. module.exports = User;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement