export interface HadithResponseModel { status: number message: string postion: number meta: any took: number timed_out: boolean _shards: Shards hits: Hits aggregations: Aggregations params: Params } export interface Shards { total: number successful: number skipped: number failed: number } export interface Hits { total: Total max_score: number hits: Hit[] } export interface Total { value: number relation: string } export interface Hit { _index: string _id: string _score: number _source: Source highlight: Highlight } export interface Source { id: string address: Address content: string meta: Meta parag_order: number style_tag: string heading_level: number sub_ayehs: any[] sub_hadithes: any[] type_key: string type_title: string lang: string tocs: string[] xml: string ai_embeddings: number[] ai_classes: AiClass[] } export interface Address { book_title: string page_end: number page_num: number vol_id: string vol_num: string vol_title: string } export interface Meta { hadith_description: string hadith_sanad: string hadith_references: any[] } export interface AiClass { score: number label: string } export interface Highlight { "content.fa": string[] xml: string[] "ai_classes.label"?: string[] "content.ph": string[] content: string[] type_key: string[] } export interface Aggregations { book_title: BookTitle ai_classes: AiClasses ai_keywords: AiKeywords vol_title: VolTitle type_title: TypeTitle lang: Lang } export interface BookTitle { doc_count_error_upper_bound: number sum_other_doc_count: number buckets: Bucket[] } export interface Bucket { key: string doc_count: number } export interface AiClasses { doc_count_error_upper_bound: number sum_other_doc_count: number buckets: Bucket2[] } export interface Bucket2 { key: string doc_count: number } export interface AiKeywords { doc_count_error_upper_bound: number sum_other_doc_count: number buckets: Bucket3[] } export interface Bucket3 { key: string doc_count: number } export interface VolTitle { doc_count_error_upper_bound: number sum_other_doc_count: number buckets: Bucket4[] } export interface Bucket4 { key: string doc_count: number } export interface TypeTitle { doc_count_error_upper_bound: number sum_other_doc_count: number buckets: Bucket5[] } export interface Bucket5 { key: string doc_count: number } export interface Lang { doc_count_error_upper_bound: number sum_other_doc_count: number buckets: Bucket6[] } export interface Bucket6 { key: string doc_count: number } export interface Params { index: string body: Body } export interface Body { query: Query from: string size: string aggs: Aggs highlight: Highlight2 } export interface Query { bool: Bool } export interface Bool { must: Must[] } export interface Must { bool: Bool2 } export interface Bool2 { should?: Should[] filter?: Filter } export interface Should { match_phrase?: MatchPhrase match?: Match bool?: Bool3 } export interface MatchPhrase { "content.ph": ContentPh } export interface ContentPh { query: string boost: number } export interface Match { "content.fa"?: ContentFa content?: Content "content.ar"?: ContentAr } export interface ContentFa { query: string boost: number } export interface Content { query: string boost: number } export interface ContentAr { query: string boost: number } export interface Bool3 { must: Must2[] } export interface Must2 { match: Match2 } export interface Match2 { book_title: BookTitle2 } export interface BookTitle2 { query: string boost: number } export interface Filter { bool: Bool4 } export interface Bool4 { must: Must3[] } export interface Must3 { term: Term } export interface Term { type_key: string } export interface Aggs { book_title: BookTitle3 ai_classes: AiClasses2 ai_keywords: AiKeywords2 vol_title: VolTitle2 type_title: TypeTitle2 lang: Lang2 } export interface BookTitle3 { terms: Terms } export interface Terms { field: string size: number } export interface AiClasses2 { terms: Terms2 } export interface Terms2 { field: string size: number } export interface AiKeywords2 { terms: Terms3 } export interface Terms3 { field: string size: number } export interface VolTitle2 { terms: Terms4 } export interface Terms4 { field: string size: number } export interface TypeTitle2 { terms: Terms5 } export interface Terms5 { field: string size: number } export interface Lang2 { terms: Terms6 } export interface Terms6 { field: string size: number } export interface Highlight2 { pre_tags: string[] post_tags: string[] fields: Fields require_field_match: boolean fragment_size: number number_of_fragments: number boundary_scanner: string } export interface Fields { "*": GeneratedType } export interface GeneratedType {}