/**
 *
 * @typedef {('all'|'outgoing'|'paused')} ShopeeAdsState
 */

/**
 *
 * @typedef {('shop'|'keyword'|'boost_ads'|'search')} ShopeeAdsTarget
 */

/**
 * @typedef {object} ShopeeAdsCampaignId
 * @property {ExpenseList[]} expense_list
 * @property {Advertisements[]} advertisements
 * @property {Campaign} campaign
 * @property {string} history_balance
 */
/**
 * @typedef {object} ExpenseList
 * @property {number} total_expense
 * @property {number} daily_expense
 * @property {number} campaignid
 */
/**
 * @typedef {object} Advertisements
 * @property {number} itemid
 * @property {number} status
 * @property {number} placement
 * @property {number} ctime
 * @property {number} campaignid
 * @property {number} adsid
 * @property {number} mtime
 * @property {Extinfo} extinfo
 */
/**
 * @typedef {object} Extinfo
 * @property {object} target
 * @property {number} pricing_type
 * @property {object} display_home_banner
 * @property {object} shop_customisation
 * @property {ShopeeAdsCampaignKeyword[]} keywords
 * @property {object} boost
 * @property {number} target_roi
 */
/**
 * @typedef {object} ShopeeAdsCampaignKeyword
 * @property {number} status
 * @property {string} price
 * @property {number} match_type
 * @property {string} keyword
 * @property {string} algorithm
 */
/**
 * @typedef {object} Campaign
 * @property {number} status
 * @property {string} name
 * @property {number} campaignid
 * @property {number} start_time
 * @property {string} daily_quota
 * @property {string} total_expense
 * @property {string} daily_expense
 * @property {ShopeeAdsState} state
 * @property {ShopeeAdsTarget} type
 * @property {number} end_time
 * @property {number} mtime
 * @property {string} total_quota
 */

/**
 * @typedef {object} ShopeeAdsCampaignList
 * @property {Report} report
 * @property {Product} product
 * @property {Advertisements[]} advertisements
 * @property {Campaign} campaign
 */
/**
 * @typedef {object} Report
 * @property {Impression} impression
 * @property {DirectRoi} direct_roi
 * @property {BroadOrder} broad_order
 * @property {Reach} reach
 * @property {ShopItemImpression} shop_item_impression
 * @property {BroadGmv} broad_gmv
 * @property {Cost} cost
 * @property {ShopCtr} shop_ctr
 * @property {Cr} cr
 * @property {Click} click
 * @property {DirectCir} direct_cir
 * @property {DirectOrderAmount} direct_order_amount
 * @property {BroadCir} broad_cir
 * @property {GmvExpenseRatio} gmv_expense_ratio
 * @property {PageViews} page_views
 * @property {Cpdc} cpdc
 * @property {Cpc} cpc
 * @property {Ctr} ctr
 * @property {DirectGmv} direct_gmv
 * @property {OrderAmount} order_amount
 * @property {DirectCr} direct_cr
 * @property {Cir} cir
 * @property {BroadRoi} broad_roi
 * @property {UniqueVisitors} unique_visitors
 * @property {BroadOrderAmount} broad_order_amount
 * @property {DirectOrder} direct_order
 * @property {ShopItemClick} shop_item_click
 * @property {Order} order
 * @property {OrderGmv} order_gmv
 */
/**
 * @typedef {object} Impression
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} DirectRoi
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} BroadOrder
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Reach
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} ShopItemImpression
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} BroadGmv
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Cost
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} ShopCtr
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Cr
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Click
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} DirectCir
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} DirectOrderAmount
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} BroadCir
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} GmvExpenseRatio
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} PageViews
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Cpdc
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Cpc
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Ctr
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} DirectGmv
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} OrderAmount
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} DirectCr
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Cir
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} BroadRoi
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} UniqueVisitors
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} BroadOrderAmount
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} DirectOrder
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} ShopItemClick
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Order
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} OrderGmv
 * @property {string} ratio
 * @property {string} value
 */
/**
 * @typedef {object} Product
 * @property {number} itemid
 * @property {string} name
 * @property {boolean} is_adult
 * @property {string} state
 * @property {boolean} is_unlisted
 * @property {boolean} is_blocked_for_promotion
 * @property {string} images
 * @property {number} stock
 */
/**
 * @typedef {object} Advertisements
 * @property {number} itemid
 * @property {number} status
 * @property {number} placement
 * @property {number} ctime
 * @property {number} campaignid
 * @property {number} adsid
 * @property {number} mtime
 * @property {Extinfo} extinfo
 */
/**
 * @typedef {object} Extinfo
 * @property {object} target
 * @property {number} pricing_type
 * @property {object} display_home_banner
 * @property {object} shop_customisation
 * @property {any[]} keywords
 * @property {object} boost
 * @property {number} target_roi
 */
/**
 * @typedef {object} Campaign
 * @property {number} status
 * @property {string} name
 * @property {number} campaignid
 * @property {string} total_quota
 * @property {number} start_time
 * @property {string} daily_expense
 * @property {string} daily_quota
 * @property {ShopeeAdsState} state
 * @property {ShopeeAdsTarget} type
 * @property {number} end_time
 * @property {number} mtime
 * @property {string} total_expense
 */
