"use strict";

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
    /*
     * The UTC datetime that the user account was created on Twitter.
     *
     * Example: "created_at": "Mon Nov 29 21:18:15 +0000 2010"
     */
    created_at: String,

    /*
     * When true, indicates that the user has not altered the theme or background of their user profile.
     */
    default_profile: Boolean,

    /*
     * When true, indicates that the user has not uploaded their own avatar and
     * a default egg avatar is used instead.
     */
    default_profile_image: Boolean,

    /*
     * Nullable. The user-defined UTF-8 string describing their account
     */
    description: String,

    /*
     * The number of tweets this user has favorited in the account’s lifetime.
     * British spelling used in the field name for historical reasons.
     */
    favourites_count: Number,

    /*
     * The number of followers this account currently has.
     * Under certain conditions of duress, this field will temporarily indicate “0.”
     */
    followers_count: Number,

    /*
     * The number of users this account is following (AKA their “followings”).
     * Under certain conditions of duress, this field will temporarily indicate “0.”
     */
    friends_count: Number,

    /*
     * The string representation of the unique identifier for this User.
     * Implementations should use this rather than the large, possibly un-consumable integer in id.
     */
    id_str: {
        type: String,
        index: {
            unique: true,
            sparse: true
        },
        lowercase: true,
        trim: true,
        default: ''
    },

    /*
     * The BCP 47 code for the user’s self-declared user interface language.
     * The number of public lists that this user is a member of.
     */
    listed_count: Number,

    /*
     * Nullable. The user-defined location for this account’s profile.
     * Not necessarily a location nor parseable.
     * This field will occasionally be fuzzily interpreted by the Search service.
     *
     * Example: "location": "San Francisco, CA"
     */
    location: String,

    /*
     * The name of the user, as they’ve defined it. Not necessarily a person’s name.
     * Typically capped at 20 characters, but subject to change.
     */
    name: String,

    /*
     * A HTTPS-based URL pointing to the background image the user has uploaded for their profile.
     */
    profile_background_image_url_https: String,

    /*
     * The HTTPS-based URL pointing to the standard web representation of the user’s uploaded profile banner.
     * By adding a final path element of the URL, you can obtain different image sizes optimized
     * for specific displays. In the future, an API method will be provided to serve these URLs
     * so that you need not modify the original URL. For size variations, please see User Profile Images
     * and Banners.
     *
     * Example: "profile_banner_url": "https://si0.twimg.com/profile_banners/819797/1348102824"
     */
    profile_banner_url: String,

    /*
     * A HTTPS-based URL pointing to the user’s avatar image.
     */
    profile_image_url_https: String,

    /*
     * The screen name, handle, or alias that this user identifies themselves with.
     * screen_names are unique but subject to change. Use id_str as a user identifier whenever possible.
     * Typically a maximum of 15 characters long, but some historical accounts may exist with longer names.
     */
    screen_name: String,

    /*
     * The number of tweets (including retweets) issued by the user.
     */
    statuses_count: Number,

    /*
     * Nullable. A string describing the Time Zone this user declares themselves within.
     *
     * Example: "time_zone":"Pacific Time (US & Canada)"
     */
    time_zone: String,

    /*
     * Nullable. A URL provided by the user in association with their profile.
     */
    url: String,

    /*
     * When true, indicates that the user has a verified account. See Verified Accounts.
     */
    verified: Boolean,

    /*
     * When present, indicates a textual representation of the two-letter country codes this user is withheld from.
     */
    withheld_in_countries: String
});

module.exports = mongoose.model('User', userSchema);
     * May or may not have anything to do with the content of their Tweets.
     */
    lang: String,

    /*