/**
 * @typedef {object} ShopeeProductData
 * @property {number} discount
 * @property {object} installment_info
 * @property {object} spl_installment_info
 * @property {string} pack_size
 * @property {boolean} hide_price
 * @property {number} price
 * @property {number} price_before_discount
 * @property {object} presale_price
 * @property {object} lowest_past_price
 * @property {Labels[]} labels
 * @property {boolean} hide_discount
 * @property {object} discount_text
 * @property {boolean} show_final_price_indicator
 * @property {string} video
 * @property {string} images
 * @property {FirstTierVariations[]} first_tier_variations
 * @property {string} sorted_variation_image_index_list
 * @property {Overlay} overlay
 * @property {object} makeup_preview
 * @property {string} abnormal_status
 * @property {any[]} promotion_images
 * @property {any[]} long_images
 * @property {any[]} shopee_video_info_list
 * @property {object} shopee_video_rcmd_info
 * @property {object} shopee_video_req_id
 * @property {string} e
 * @property {object} skincam
 * @property {object} pdp_top_info_list
 * @property {object} has_long_image
 * @property {Attrs[]} attrs
 * @property {Categories[]} categories
 * @property {any[]} related_items
 * @property {number} rating_star
 * @property {string} rating_count
 * @property {number} total_rating_count
 * @property {number} historical_sold
 * @property {number} global_sold
 * @property {boolean} liked
 * @property {number} liked_count
 * @property {number} cmt_count
 * @property {object} should_move_ratings_above
 * @property {object} review_rcmd_exp_group
 * @property {boolean} display_global_sold
 * @property {boolean} hide_rating
 * @property {boolean} hide_buyer_gallery
 * @property {boolean} hide_reviews
 * @property {boolean} hide_other_product_reviews_in_shop
 * @property {boolean} show_lowest_price_guarantee
 * @property {boolean} show_original_guarantee
 * @property {boolean} show_best_price_guarantee
 * @property {boolean} show_official_shop_label_in_title
 * @property {boolean} show_shopee_verified_label
 * @property {boolean} show_lowest_installment_guarantee
 * @property {boolean} hide_sharing_button
 * @property {boolean} hide_sold_count
 * @property {number} item_id
 * @property {number} shop_id
 * @property {string} item_status
 * @property {number} status
 * @property {number} item_type
 * @property {string} reference_item_id
 * @property {string} title
 * @property {string} image
 * @property {string} label_ids
 * @property {boolean} is_adult
 * @property {boolean} is_preview
 * @property {number} flag
 * @property {boolean} is_service_by_shopee
 * @property {number} condition
 * @property {number} cat_id
 * @property {boolean} has_low_fulfillment_rate
 * @property {object} is_live_streaming_price
 * @property {string} currency
 * @property {object} brand
 * @property {number} brand_id
 * @property {number} show_discount
 * @property {number} ctime
 * @property {ItemRating} item_rating
 * @property {number} cb_option
 * @property {boolean} has_model_with_available_shopee_stock
 * @property {string} shop_location
 * @property {Attributes[]} attributes
 * @property {object} rich_text_description
 * @property {object} invoice_option
 * @property {object} is_category_failed
 * @property {boolean} is_prescription_item
 * @property {object} preview_info
 * @property {boolean} show_prescription_feed
 * @property {boolean} is_alcohol_product
 * @property {boolean} is_infant_milk_formula_product
 * @property {boolean} is_unavailable
 * @property {boolean} is_partial_fulfilled
 * @property {boolean} is_presale
 * @property {object} is_presale_deposit_item
 * @property {object} is_presale_deposit_made
 * @property {string} description
 * @property {FeCategories[]} fe_categories
 * @property {boolean} item_has_video
 * @property {object} presale_dday_start_time
 * @property {object} is_lowest_price_at_shopee
 * @property {Models[]} models
 * @property {TierVariations[]} tier_variations
 * @property {string} size_chart
 * @property {object} size_chart_info
 * @property {number} welcome_package_type
 * @property {boolean} is_free_gift
 * @property {object} deep_discount
 * @property {object} is_low_price_eligible
 * @property {object} bundle_deal_info
 * @property {object} add_on_deal_info
 * @property {number} shipping_icon_type
 * @property {number} badge_icon_type
 * @property {SplInfo} spl_info
 * @property {number} estimated_days
 * @property {boolean} is_pre_order
 * @property {boolean} is_free_shipping
 * @property {object} overall_purchase_limit
 * @property {number} min_purchase_limit
 * @property {boolean} is_hide_stock
 * @property {number} stock
 * @property {number} normal_stock
 * @property {number} current_promotion_reserved_stock
 * @property {boolean} can_use_wholesale
 * @property {any[]} wholesale_tier_list
 * @property {number} raw_discount
 * @property {object} hidden_price_display
 * @property {number} price_min
 * @property {number} price_max
 * @property {number} price_min_before_discount
 * @property {number} price_max_before_discount
 * @property {number} other_stock
 * @property {number} discount_stock
 * @property {boolean} current_promotion_has_reserve_stock
 * @property {object} complaint_policy
 * @property {boolean} show_recycling_info
 * @property {boolean} should_show_amp_tag
 * @property {boolean} all_models_has_pre_order
 * @property {boolean} is_item_inherited
 * @property {number} max_quantity
 * @property {ShopData} shop_data
 * @property {AccountData} account_data
 * @property {string} name
 * @property {number} itemid
 * @property {number} shopid
 * @property {VideoInfoList[]} video_info_list
 * @property {number} sold
 * @property {number} view_count
 * @property {string} platform
 * @property {number} productId
 * @property {number} shopId
 * @property {string} sku
 * @property {number} weight
 * @property {Dimension} dimension
 * @property {string} url
 * @property {VideoData} videoData
 */
/**
 * @typedef {object} Labels
 * @property {number} type
 * @property {string} text
 * @property {string} color
 * @property {string} display
 * @property {object} exclusive_price
 * @property {object} promotion_id
 */
/**
 * @typedef {object} FirstTierVariations
 * @property {string} name
 * @property {string} image
 * @property {number} summed_stock
 * @property {number} display_indicator
 */
/**
 * @typedef {object} Overlay
 * @property {number} type
 * @property {string} image
 * @property {object} preview_end_time
 * @property {object} is_pre_order
 * @property {string} description
 */
/**
 * @typedef {object} Attrs
 * @property {string} name
 * @property {string} value
 * @property {object} id
 * @property {object} is_timestamp
 * @property {object} brand_option
 * @property {object} val_id
 * @property {object} url
 * @property {object} brand_id
 * @property {object} full_url
 * @property {number} type
 */
/**
 * @typedef {object} Categories
 * @property {number} catid
 * @property {string} display_name
 * @property {boolean} no_sub
 * @property {boolean} is_default_subcat
 */
/**
 * @typedef {object} ItemRating
 * @property {number} rating_star
 */
/**
 * @typedef {object} Attributes
 * @property {string} name
 * @property {string} value
 * @property {number} id
 * @property {boolean} is_timestamp
 * @property {object} brand_option
 * @property {number} val_id
 * @property {object} url
 * @property {object} brand_id
 * @property {object} full_url
 * @property {object} type
 */
/**
 * @typedef {object} FeCategories
 * @property {number} catid
 * @property {string} display_name
 * @property {boolean} no_sub
 * @property {boolean} is_default_subcat
 */
/**
 * @typedef {object} Models
 * @property {number} item_id
 * @property {number} status
 * @property {number} current_promotion_reserved_stock
 * @property {string} name
 * @property {number} promotion_id
 * @property {boolean} has_stock
 * @property {number} price
 * @property {PriceStocks[]} price_stocks
 * @property {boolean} current_promotion_has_reserve_stock
 * @property {number} normal_stock
 * @property {Extinfo} extinfo
 * @property {number} price_before_discount
 * @property {number} model_id
 * @property {number} stock
 * @property {boolean} has_gimmick_tag
 * @property {object} key_measurement
 * @property {number} sold
 * @property {boolean} is_lowest_price_at_shopee
 * @property {number} modelid
 * @property {number} itemid
 * @property {number} promotionid
 * @property {string} sku
 * @property {string} image
 * @property {Tier[]} tier
 */
/**
 * @typedef {object} PriceStocks
 * @property {number} allocated_stock
 * @property {StockBreakdownByLocation[]} stock_breakdown_by_location
 * @property {number} promotion_type
 */
/**
 * @typedef {object} StockBreakdownByLocation
 * @property {string} location_id
 * @property {number} available_stock
 * @property {number} fulfilment_type
 * @property {number} address_id
 * @property {object} allocated_stock
 */
/**
 * @typedef {object} Extinfo
 * @property {string} tier_index
 * @property {boolean} is_pre_order
 * @property {number} estimated_days
 */
/**
 * @typedef {object} Tier
 * @property {string} text
 * @property {string} value
 */
/**
 * @typedef {object} TierVariations
 * @property {string} name
 * @property {string} options
 * @property {any[]} images
 * @property {object} properties
 * @property {number} type
 * @property {object} summed_stocks
 * @property {string} display_indicators
 */
/**
 * @typedef {object} SplInfo
 * @property {object} installment_info
 * @property {object} user_credit_info
 * @property {object} channel_id
 * @property {boolean} show_spl
 * @property {object} show_spl_lite
 * @property {object} spl_xtra
 */
/**
 * @typedef {object} ShopData
 * @property {number} shopid
 * @property {number} userid
 * @property {number} last_active_time
 * @property {boolean} vacation
 * @property {string} place
 * @property {Account} account
 * @property {boolean} is_shopee_verified
 * @property {boolean} is_preferred_plus_seller
 * @property {boolean} is_official_shop
 * @property {string} shop_location
 * @property {number} item_count
 * @property {number} rating_star
 * @property {number} response_rate
 * @property {object} session_info
 * @property {string} name
 * @property {number} ctime
 * @property {number} response_time
 * @property {number} follower_count
 * @property {boolean} show_official_shop_label
 * @property {number} rating_bad
 * @property {number} rating_good
 * @property {number} rating_normal
 * @property {object} session_infos
 * @property {number} status
 * @property {object} is_individual_seller
 * @property {boolean} is_mart
 * @property {object} favorite_shop_info
 * @property {boolean} is_3pf
 * @property {number} sold_total
 * @property {boolean} is_shopee_choice
 * @property {boolean} is_high_end
 * @property {Banner} banner
 * @property {object} authorized_brand
 * @property {boolean} is_scs
 */
/**
 * @typedef {object} Account
 * @property {string} portrait
 * @property {string} username
 * @property {number} status
 */
/**
 * @typedef {object} Banner
 * @property {object} shopee_choice
 */
/**
 * @typedef {object} AccountData
 * @property {number} user_id
 * @property {boolean} is_new_user
 * @property {DefaultAddress} default_address
 * @property {number} adult_consent
 * @property {number} birth_timestamp
 */
/**
 * @typedef {object} DefaultAddress
 * @property {string} state
 * @property {string} city
 * @property {string} district
 * @property {string} town
 * @property {object} zip_code
 * @property {object} address
 * @property {object} region
 * @property {object} longitude
 * @property {object} latitude
 */
/**
 * @typedef {object} VideoInfoList
 * @property {string} video_id
 * @property {string} thumb_url
 * @property {number} duration
 * @property {number} version
 * @property {string} vid
 * @property {Formats[]} formats
 * @property {DefaultFormat} default_format
 * @property {string} mms_data
 * @property {object} item_cover
 */
/**
 * @typedef {object} Formats
 * @property {number} format
 * @property {string} defn
 * @property {string} profile
 * @property {string} path
 * @property {string} url
 * @property {number} width
 * @property {number} height
 */
/**
 * @typedef {object} DefaultFormat
 * @property {number} format
 * @property {string} defn
 * @property {string} profile
 * @property {string} path
 * @property {string} url
 * @property {number} width
 * @property {number} height
 */
/**
 * @typedef {object} Dimension
 * @property {number} height
 * @property {number} weight
 * @property {number} length
 * @property {number} width
 */
/**
 * @typedef {object} VideoData
 * @property {string} id
 * @property {number} version
 * @property {string} urlRaw
 * @property {string} listUrl
 * @property {string} urlDefault
 */
