/**
 * @typedef {("Free"|"Pro"|"Unlimited")} UserDataPlan
 */

/**
 * @typedef {("Free"|"Vip"|"VipPlus")} UserExtensionPlan
 */

/**
 * @typedef {object} UserLogin
 * @property {boolean} success
 * @property {boolean} auth
 * @property {UserData} data
 * @property {string} token
 * @property {string} msg
 */
/**
 * @typedef {object} UserData
 * @property {string} _id
 * @property {string} id
 * @property {string} userid
 * @property {string} userRef
 * @property {ShopConfig} shopConfig
 * @property {string} username
 * @property {string} fullname
 * @property {string} email
 * @property {string} session
 * @property {boolean} isForzen
 * @property {string} phoneNumber
 * @property {string} role
 * @property {UserDataPlan} plan
 * @property {UserExtensionPlan} extensionPlan
 * @property {string} timeCreate
 * @property {string} timeExpired
 * @property {boolean} expired
 * @property {boolean} status
 * @property {LimitInc} limitInc
 * @property {ShopManager} shopManager
 * @property {Stats} stats
 * @property {string} timeExtensionTool
 * @property {string} timeShopManager
 */
/**
 * @typedef {object} ShopConfig
 * @property {number} limit
 */
/**
 * @typedef {object} LimitInc
 * @property {number} shopeeClone
 * @property {number} lazadaClone
 * @property {number} tiktokClone
 */
/**
 * @typedef {object} ShopManager
 * @property {number} online
 * @property {number} maxOnline
 * @property {string} timeLogin
 */
/**
 * @typedef {object} Stats
 * @property {Shop} shop
 * @property {Upgrade} upgrade
 */
/**
 * @typedef {object} Shop
 * @property {number} shopee
 * @property {number} lazada
 * @property {number} tiktok
 */
/**
 * @typedef {object} Upgrade
 * @property {number} count
 * @property {number} payment
 * @property {string} lastestTime
 */

/**
 * @typedef {object} UserProfileId
 * @property {string} _id
 * @property {string} profileId
 * @property {string} userRef
 * @property {string} username
 * @property {string} ip
 * @property {boolean} active
 * @property {boolean} expired
 * @property {string} timeExpired
 * @property {boolean} deleted
 * @property {string} timeLogin
 * @property {string} timeCreate
 * @property {string} timeUpdate
 * @property {string} createdAt
 * @property {string} updatedAt
 */

/**
 * @typedef {object} UserGetMe
 * @property {string} _id
 * @property {string} id
 * @property {string} userid
 * @property {string} userRef
 * @property {string} profileId
 * @property {string} deviceId
 * @property {ShopConfig} shopConfig
 * @property {string} username
 * @property {string} fullname
 * @property {string} email
 * @property {string} session
 * @property {string} sessionId
 * @property {string} phoneNumber
 * @property {string} role
 * @property {UserExtensionPlan} plan
 * @property {string} timeCreate
 * @property {string} timeExpired
 * @property {boolean} expired
 * @property {boolean} status
 * @property {LimitInc} limitInc
 * @property {ShopManager} shopManager
 * @property {Stats} stats
 * @property {SubcriptionPlan} subcriptionPlan
 * @property {UserExtensionPlan} extensionPlan
 */
/**
 * @typedef {object} ShopConfig
 * @property {number} limit
 */
/**
 * @typedef {object} LimitInc
 * @property {number} shopeeClone
 * @property {number} lazadaClone
 * @property {number} tiktokClone
 */
/**
 * @typedef {object} ShopManager
 * @property {number} online
 * @property {number} maxOnline
 * @property {string} timeLogin
 * @property {string} planName
 * @property {boolean} isExpired
 * @property {string} timeExpired
 * @property {DeviceLogin} deviceLogin
 * @property {ShopConfig} shopConfig
 */
/**
 * @typedef {object} Stats
 * @property {Shop} shop
 * @property {Upgrade} upgrade
 */
/**
 * @typedef {object} Shop
 * @property {number} shopee
 * @property {number} lazada
 * @property {number} tiktok
 */
/**
 * @typedef {object} Upgrade
 * @property {number} count
 * @property {number} payment
 * @property {string} lastestTime
 */
/**
 * @typedef {object} SubcriptionPlan
 * @property {ShopManager} shopManager
 * @property {Extension} extension
 * @property {Autoshopee} autoshopee
 */
/**
 * @typedef {object} DeviceLogin
 * @property {Change} change
 * @property {number} use
 * @property {number} max
 * @property {string} timeUpdate
 * @property {number} extend
 * @property {number} static
 * @property {boolean} isMax
 * @property {boolean} isOverload
 */
/**
 * @typedef {object} Change
 * @property {number} current
 * @property {number} extend
 * @property {number} limit
 */
/**
 * @typedef {object} Extension
 * @property {string} planName
 * @property {boolean} isExpired
 * @property {string} timeExpired
 */
/**
 * @typedef {object} Autoshopee
 * @property {string} planName
 * @property {boolean} isExpired
 * @property {string} timeExpired
 * @property {string} timeLogin
 */

/**
 * @typedef {object} UserGetProfileId
 * @property {string} _id
 * @property {string} profileId
 * @property {string} userRef
 * @property {string} username
 * @property {string} ip
 * @property {boolean} active
 * @property {boolean} expired
 * @property {string} timeExpired
 * @property {boolean} deleted
 * @property {string} timeLogin
 * @property {string} timeCreate
 * @property {string} timeUpdate
 * @property {string} createdAt
 * @property {string} updatedAt
 * @property {number} __v
 */
