/**
 * @typedef {object} TiktokRepublishEditInfo
 * @property {boolean} allow_republish
 * @property {number} republish_reasons
 */
/**
 * @typedef {object} TiktokPromotionImage
 * @property {number} height
 * @property {number} width
 * @property {string} thumb_uri
 * @property {string[]} thumb_url_list
 * @property {string} uri
 * @property {string[]} url_list
 */
/**
 * @typedef {object} TiktokPriceRange
 * @property {string} lowest_price
 * @property {string} highest_price
 * @property {string} lowest_price_value
 * @property {string} highest_price_value
 */
/**
 * @typedef {object} TiktokTimePeriod
 * @property {string} start_time
 * @property {string} end_time
 */
/**
 * @typedef {object} TiktokFlashSaleListPayload
 * @property {number} index
 * @property {number} size
 * @property {number} status
 * @property {number} promotion_type
 * @property {number} display_type
 * @property {number} diagnosis_type
 */
/**
 * @typedef {object} TiktokPromotionExtra
 * @property {number} create_source
 * @property {boolean} hide_product
 */
/**
 * @typedef {object} TiktokPromotionItem
 * @property {string} id
 * @property {string} name
 * @property {number} status
 * @property {string} start_time
 * @property {string} end_time
 * @property {number} promotion_type
 * @property {boolean} is_long_term
 * @property {number} display_type
 * @property {TiktokPromotionExtra} extra
 * @property {boolean} is_default
 * @property {number} promotion_type_detail
 * @property {boolean} is_member_promotion
 * @property {TiktokRepublishEditInfo} republish_edit_info
 */
/**
 * @typedef {object} TiktokFlashSaleListResponse
 * @property {TiktokPromotionItem[]} promotions
 * @property {number} total_count
 */
/**
 * @typedef {object} TiktokFlashSaleApplicationScope
 * @property {TiktokFlashSaleApplicationCreator} creator
 */
/**
 * @typedef {object} TiktokFlashSaleApplicationCreator
 * @property {number} applicable_type
 */
/**
 * @typedef {object} TiktokFlashSaleDetail
 * @property {string} promotion_id
 * @property {string} promotion_name
 * @property {TiktokTimePeriod} period
 * @property {number} promotion_status
 * @property {string} create_time
 * @property {string} last_update_time
 * @property {number} pre_launch_day
 * @property {number} promotion_limit_dimension
 * @property {number[]} display_channels
 * @property {number} effective_time_type
 * @property {TiktokFlashSaleApplicationScope} application_scope
 * @property {number} type_detail
 * @property {number} create_source
 * @property {TiktokRepublishEditInfo} republish_edit_info
 */
/**
 * @typedef {object} TiktokFlashSaleGetExtra
 * @property {boolean} hide_product
 */
/**
 * @typedef {object} TiktokFlashSaleGetResponse
 * @property {TiktokFlashSaleDetail} flash_sale
 * @property {TiktokFlashSaleGetExtra} extra
 */
/**
 * @typedef {object} TiktokFlashSaleProductPayload
 * @property {string} promotion_id
 * @property {number} cursor
 * @property {number} limit
 * @property {object[]} extra_info_list
 */
/**
 * @typedef {object} TiktokFlashSaleSku
 * @property {string} sku_id
 * @property {string} product_id
 * @property {string} sku_name
 * @property {boolean} in_promotion
 * @property {number} inventory_quantity
 * @property {TiktokPriceRange} sale_price_range
 * @property {TiktokPriceRange} estimated_discounted_price_range
 * @property {string} fixed_price
 * @property {string} fixed_price_value
 * @property {string} discount_percentage
 */
/**
 * @typedef {object} TiktokDiscountLimit
 * @property {number} type_detail
 * @property {number} max_discount
 * @property {number} min_discount
 * @property {number} warning_discount
 * @property {number} max_discount_special_time
 * @property {TiktokTimePeriod[]} special_times
 */
/**
 * @typedef {object} TiktokFlashSaleProduct
 * @property {string} product_id
 * @property {string} product_name
 * @property {number} inventory_quantity
 * @property {number} product_status
 * @property {TiktokPriceRange} sale_price_range
 * @property {TiktokPromotionImage} image
 * @property {number} total_sku_count
 * @property {number} selected_sku_count
 * @property {boolean} selected
 * @property {number} purchase_limit
 * @property {string} fixed_price
 * @property {string} fixed_price_value
 * @property {TiktokFlashSaleSku[]} skus
 * @property {TiktokDiscountLimit[]} discount_limit
 */
/**
 * @typedef {object} TiktokFlashSaleProductResponse
 * @property {TiktokFlashSaleProduct[]} item_products
 * @property {number} total_count
 */
/**
 * @typedef {object} TiktokFlashSaleAuditLogPayload
 * @property {string} object_id
 * @property {number} status_type
 * @property {number} sort_type
 * @property {number} page_index
 * @property {number} page_size
 */
/**
 * @typedef {object} TiktokFlashSaleAuditChangeDiff
 * @property {number} diff_type
 * @property {string} field_name
 * @property {string} new_common_value
 * @property {TiktokTimePeriod} new_time_period
 * @property {object[]} spu_list
 */
/**
 * @typedef {object} TiktokFlashSaleAuditLogItem
 * @property {string} timestamp_ms
 * @property {number} action_type
 * @property {string} operator_desc
 * @property {number} operator_type
 * @property {TiktokFlashSaleAuditChangeDiff[]} change_diff
 * @property {number} status_code
 * @property {string} status_msg
 */
/**
 * @typedef {object} TiktokFlashSaleAuditLogResponse
 * @property {TiktokFlashSaleAuditLogItem[]} audit_log_items
 * @property {number} total_count
 */
/**
 * @typedef {object} TiktokFlashSaleLimitRule
 * @property {number} limit_dimension
 * @property {number} limit_num
 */
/**
 * @typedef {object} TiktokFlashSalePriceDiscount
 * @property {number} discount_type
 * @property {string} discount_value
 */
/**
 * @typedef {object} TiktokFlashSaleCreateSku
 * @property {string} sku_id
 * @property {string} product_id
 * @property {TiktokFlashSalePriceDiscount[]} price_discount
 * @property {TiktokFlashSaleLimitRule[]} limit_rule_list
 */
/**
 * @typedef {object} TiktokFlashSaleCreateProduct
 * @property {string} product_id
 * @property {TiktokFlashSaleCreateSku[]} sku_list
 * @property {TiktokFlashSaleLimitRule[]} limit_rule_list
 */
/**
 * @typedef {object} TiktokFlashSaleCreatePayload
 * @property {string} promotion_name
 * @property {TiktokTimePeriod} period
 * @property {number} type_detail
 * @property {number} promotion_limit_dimension
 * @property {number[]} display_channels
 * @property {number} effective_time_type
 * @property {number} pre_launch_day
 * @property {TiktokFlashSaleApplicationScope} application_scope
 * @property {TiktokFlashSaleCreateProduct[]} product_list
 */
/**
 * @typedef {object} TiktokFlashSaleCreateResponse
 * @property {string} promotion_id
 */
/**
 * @typedef {object} TiktokPromotionItemCollection
 * @property {string} module
 * @property {string} business
 */
/**
 * @typedef {object} TiktokPromotionItemDataQuery
 * @property {TiktokPromotionItemCollection} collection
 */
/**
 * @typedef {object} TiktokPromotionItemInfo
 * @property {number} item_type
 */
/**
 * @typedef {object} TiktokPromotionConfigItem
 * @property {string} key
 * @property {string} value
 * @property {TiktokPromotionItemInfo} item_info
 */
/**
 * @typedef {object} TiktokPromotionCollection
 * @property {string} collection_id
 * @property {string} business
 * @property {string} region
 * @property {string} application
 * @property {string} module
 * @property {number} collection_status
 * @property {string} update_time
 */
/**
 * @typedef {object} TiktokPromotionItemResult
 * @property {TiktokPromotionCollection} collection
 * @property {TiktokPromotionConfigItem[]} items
 */
/**
 * @typedef {object} TiktokPromotionItemDataResponse
 * @property {TiktokPromotionItemResult[]} item_results
 */
