export type SimilarQueryItem = { q: string order: number type_name: string } export type GetSimilarQueryResponseData = { result: SimilarQueryItem[] } export type GroupSimilarQueryItem = { typeName: string group: SimilarQueryItem[] } export type CategoryTagValueItem = { name: string unknownFields?: string } export type CategoryTag = { key: string name: string type: 'CategoryTag' choice: 'multiple_choice' | 'single_choice' values: CategoryTagValueItem[] } export type LowAndHighRange = { low: number high: number unknownFields?: null } export type HistogramBucketItem = { count: number percentage: number range: LowAndHighRange unknownFields?: string } export type Unit = { quantity: string unit: string unknownFields?: string } export type Histogram = { buckets: HistogramBucketItem[] unit: Unit unknownFields?: string } export type RangeUnitTagValueItem = { histogram: Histogram name?: string range: LowAndHighRange unit: Unit unitOptions: Unit[] unknownFields?: string } export type RangeUnitTag = { key: string name: string type: 'RangeUnitTag' values: RangeUnitTagValueItem[] } export type NameValueItem = { name: string; unknownFields?: string } export type SemiAutoCategoryTag = { key: string name: string type: 'SemiAutoCategoryTag' choice: 'multiple_choice' | 'single_choice' values: NameValueItem[] } export type SearchFilterTagWithOrder = { order: number tag: Tag } export type CategoryFilter = SearchFilterTagWithOrder export type RangeUnitFilter = SearchFilterTagWithOrder export type SemiAutoCategoryFilter = SearchFilterTagWithOrder export type SearchFilterItem = CategoryFilter | SemiAutoCategoryFilter | RangeUnitFilter export type SearchFilter = { fold_tags: SearchFilterItem[] tags: SearchFilterItem[] } export type UserTagItem = { color: string content: string enabled: boolean id: number } export type PostSearchCandidatesResponseData = { candidates: any[] filter: SearchFilter query: string similar_keywords: string[] total: number extra: { user_tags: UserTagItem[] } } export type FilterRightHelperType = 'SINGLE_TIP' | 'MULTIPLE_TIP' | 'SUBMIT_BTN' | 'SUBMIT_BAN' export type RangeWithIndex = { range: RangeUnitTagValueItem index: number } export type SavedSearchParamsItemType = 'saved' | 'history' export type SavedSearchParamsItem = { q: string filter: SearchFilterItem[] type: SavedSearchParamsItemType str: string id: number } export type _SavedSearchParams = { q: string filters: SearchFilterItem[] id: number } export type GetSavedSearchParamsResponseData = _SavedSearchParams[]