haditha_ui/types/hadithType.ts
2025-03-15 13:41:29 +03:30

340 lines
4.9 KiB
TypeScript

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 {}